springMVC全局异常处理器
1、 springMVC提供全局异常处理器
一个系统只有一个进行统一异常处理
2、 定义自定义异常类,继承Exception类
public class SystemException extends Exception { // 抛出异常信息 private String message; public SystemException() { } public SystemException(String message) { super(message); this.message = message; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
3、 定义全局异常处理器,实现HandlerExceptionResolver
public class SystemExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest req, HttpServletResponse resp, Object handler, Exception ex) { // 解析出异常类型 SystemException systemException = null; if(ex instanceof SystemException) { systemException = (SystemException) ex; }else { systemException = new SystemException("该资源已丢失,请联系管理员!"); } // 错误信息 String message = systemException.getMessage(); // 将错误信息传到页面 ModelAndView mv = new ModelAndView(); mv.addObject("msg", message); mv.setViewName("error"); return mv; } }
4、 Springmvc配置文件
<!-- 配置全局异常处理器 --> <bean class="com.yxxy.exception.SystemExceptionResolver"></bean>
5、 测试代码
@Controller @RequestMapping("/springmvc") public class UserController { @RequestMapping("/exception") public void exception() throws SystemException { throw new SystemException("这是一个自己的任性异常!"); } }