单个异常处理@ExceptionHandler
在系统当中,Dao,Service,Controller层代码出现都可能抛出异常。如果那里产生异常,就在哪里处理,则会降低开发效率。所以一般情况下我们会让异常向上抛出,最终到达DispatcherServlet中,此时SpringMVC提供了异常处理进行异常处理,这样就可以提高开发效率。
在处理单个异常的方法的上方添加 @ExceptionHandler 注解,表示该方法是处理异常的方法,属性为处理异常的类。
全局异常处理@ControllerAdvice
在控制器中定义异常处理方法只能够处理该控制器的异常,要想处理所有控制器的异常,需要定义全局异常处理类。
在全局异常处理类上方添加 @ControllerAdvice 注解,再在每个方法上方添加 @ExceptionHandler 注解,其属性设置相对应的异常处理的类即可。
自定义异常处理器 HandlerExceptionResolver接口
自定义异常处理器需要实现 HanderExceptionResolver接口