1. 添加config 配置类
package org.fh.config; | |
import javax.servlet.http.HttpServletRequest; | |
import javax.servlet.http.HttpServletResponse; | |
import org.springframework.context.annotation.Configuration; | |
import org.springframework.web.servlet.HandlerExceptionResolver; | |
import org.springframework.web.servlet.ModelAndView; | |
import org.springframework.web.servlet.view.json.MappingJackson2JsonView; | |
/** | |
* 说明:错误异常拦截处理 | |
* 作者:FH Admin | |
* from fhadmin.cn | |
*/ | |
public class ExceptionConfiguration implements HandlerExceptionResolver { | |
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, | |
Exception ex) { | |
ModelAndView mv = new ModelAndView(new MappingJackson2JsonView()); //返回json | |
String exInfo = ex.toString().replaceAll("\n", "<br/>"); | |
boolean status = exInfo.contains("Subject does not have permission"); | |
if(status){ | |
exInfo = "[没有此页面的访问权限]" + exInfo; | |
}else { | |
System.out.println("==============异常开始============="); | |
ex.printStackTrace(); | |
System.out.println("==============异常结束============="); | |
} | |
mv.addObject("exception", exInfo); | |
mv.addObject("result", "exception"); | |
return mv; | |
} | |
} |
2. 在逻辑类的方法上抛出异常 throws Exception,比如
/**删除 | |
* @param out | |
* @throws Exception | |
*/ | |
"/delete") | (value=|
"autograph:del") | (|
public Object delete() throws Exception{ | |
Map<String,String> map = new HashMap<String,String>(); | |
String errInfo = "success"; | |
//xxxx | |
map.put("result", errInfo); //返回结果 | |
return map; | |
} |
3. 前端页面接收异常结果
//发送 post 请求提交保存 | |
$.ajax({ | |
xhrFields: { | |
withCredentials: true | |
}, | |
type: "POST", | |
url: httpurl+'xxxx/delete', | |
data: {tm:new Date().getTime()}, | |
dataType:"json", | |
success: function(data){ | |
if("success" == data.result){ | |
}else if ("exception" == data.result){ | |
alert("模块异常"+data.exception);//显示异常 | |
} | |
} | |
}); |