全局异常解决的问题:统一解决系统中存在的异常或可能发生的异常。
解决层面:在controller之上
实现方式:
(1)首先需要自定义异常类(就是系统中可能出现的异常)简单demo:
public class ownerException extends RuntimeException { private String msg; public ownerException(String msg){ this.msg = msg; } }
(2)定义解决这种异常的处理类(需要实现handlerExceptionResolver类):
public class globalException implements HandlerExceptionResolver{ @Override public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler, Exception e) { if(e instanceof ownerException){ System.out.println(e.getMessage()); } else{ System.out.println("未知异常"); } return new ModelAndView("error"); } }
(3)将全局异常处理类注册到ioc中:
<bean id="e" class="com.globalException"/>之后就可以使用全局异常处理了。