自定义异常:
public class MyException extends Exception {
private String message;
public MyException(String message) {
this.message = message;
}
@Override
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
自定义异常处理器实现HandlerExceptionResolver接口
public class MyExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
String message = null;
// 捕获到异常信息
if(ex instanceof MyException) {
message = ((MyException) ex).getMessage();
}else{
message = "系统异常,请联系管理员,010-xxxxx";
}
// TODO 1 log4j记录异常日志 2 发邮件/发短信给相关人员(根据异常问题严重程度)
// 异常信息显示到指定页面
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("exception",message);
modelAndView.setViewName("exception");
return modelAndView;
}
}
注册SpringMVC的全局异常处理器,直接定义一个bean即可
<bean id="myExceptionResolver" class="com.zhd.springmvc.exception.MyExceptionResolver"></bean>