java将异常消息放到json字符串里面,方便程序员F12查看

    单位有一个在线平台,由于时间原因可能今天写的代码,晚上跟新至服务器,明天就可能很多人用。而程序员不可能考虑的十分周全,对于程序抛出的异常无法及时的查看(只有老板能远程到服务器查看tomcat的堆栈消息),现在我们将异常消息放到json字符串里面,方便程序员F12查看.

    实现原理就是:我们平时在eclipse里面看到如 IOException,ClassCastException 的堆栈消息,实际上是java通过io流打印到控制台上的。如果我们能将io流的信息转成string就能不远程服务器地查看异常堆栈。方法如下:

	/**
	 * 合并考试
	 * @param examName
	 * @param oldExamIds
	 * @return
	 * @throws IOException 
	 */
	@RequestMapping(value="/combineExam")
	@ResponseBody
	public Object combineExam(String examName,String oldExamIds,String schoolClassId,String termId,String userId,String CourseNum,String isSee) throws IOException{
		 String return_code = "SUCCESS";
		 String return_msg = "试卷合成成功";
		 Map<String,Object> map = new HashMap<String,Object>();
		 String oldExamNames = banzhurenService.getExamNameStr(oldExamIds);
		 //先查询已经传来两个试卷的试卷名称
		 if(oldExamNames.indexOf("(合卷)")>0){
			 return_code="fail1";
			 return_msg = "已经合并的试卷无法在进行合并";
			 map.put("return_code", return_code);
			 map.put("return_msg", return_msg);
			 return map;

		 }
		 	try {
		 		banzhurenService.modifyCombineExam(examName, oldExamIds,schoolClassId,termId,userId,CourseNum,isSee);
			} catch (Exception e) {
				 ByteArrayOutputStream buf = new java.io.ByteArrayOutputStream();
				 e.printStackTrace(new java.io.PrintWriter(buf, true));
				 String  expMessage = buf.toString();
				 buf.close();
				 map.put("return_code", "exception");
				 map.put("return_msg", expMessage);
			}
		return map;
		}
 这样通过 ajax的回调函数,将expMessage写到阅览器的console(原来错误地以为fail函数会在捕获异常时执行=。=,fail函数实际会在程序抛异常或者网络出错时执行)

		  $.ajax({
			  type:'POST',
			  async: false,
			  url:'/combineExam?examName='+newName+'&oldExamIds='+tempBox+'&schoolClassId='+schoolClassId+'&termId='+termId+'&userId='+userId+'&CourseNum='+CourseNum+'&isSee='+isSee,
			  success:function(data){
				  if(data.return_code=='fail1'){
					  alert(data.return_msg);
				  }else if(data.return_code=='exception'){
					  alert("程序异常请联系管理员");
					  console.log(data.return_msg);
				  }else{
					  alert(data.return_msg);
				  }
			  },
			  fail:function(data){
				  alert(data.return_msg);
			  }
		  });


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值