异常处理
能够给Controller加切面的机制都能变相的进行统一异常处理,比如之前通过 AOP 实现的全局统一的异常处理:Spring aop 统一异常处理和日志输出。
这里总结一下,其他常用的异常处理方式。
接下来主要介绍五种处理异常的方式:
- HandlerExceptionResolver
- @ControllerAdvice 与 @ExceptionHandler
- ResponseEntityExceptionHandler
- ResponseStatusException
- ErrorController
HandlerExceptionResolver
HandlerExceptionResolver 是 Web 程序发生异常时, Spring 处理异常的接口,提供了一个抽象类和四个实现类:
四个实现类,是特定情况下可以选择,我们一般通过实现 HandlerExceptionResolver 接口或继承 AbstractHandlerExceptionResolver 抽象类来自定义异常处理。
@Component
public class ExceptionTest implements HandlerExceptionResolver{
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,Exception ex) {
System.out.println("This is exception handler method!");
return null;
}
}