1.首先在后台定义自定义异常(加注解,继承异常类等)
2.在controller层对返回值进行try catch包裹
例如我的返回值是一个map,正常情况下在返回值之外再多加一个是否返回成功标记,成功返回的话
returnMap.put("flag",true);如果进入异常则returnMap.put("flag",false);
try { String result = logPathService.logSearch(before, after, findStr, logName, path); Map returnMap = new HashMap(); returnMap.put("str",result); returnMap.put("flag",true); return returnMap; } catch (Exception e) { e.printStackTrace(); Map returnMap = new HashMap(); returnMap.put("flag",false); returnMap.put("msg",e.getMessage()); return returnMap; }
并且如果进入异常还要将异常的信息存储,在前台处理并进行打印
3.前台对后台的返回值进行处理,如果正常则表单赋值,如果进入异常则弹窗提示错误
$.dajax({ async: true, data: $.extend(true,{},data,{logName : logName},{path : path}), url: $.getRootPath() + "/logPath/logSearch.do", success: function (data) { if(data.flag == true){ $("#messagedemo").dform({ rownum:2, labelwidth: "140px", inputs: [ {"name":"str","title":"查询结果","type":"textBox", multiline: true, colspan: 3,height:400, setReadonly: true}, ] }); $("#messagedemo").dform("load", data); index = data.index;}else { $.dalert({text: data.msg, icon: 2}); return; } }, });