Spring MVC HandlerExceptionResolver详解
前言
处理器异常是分派和处理请求阶段抛出的异常,HandlerExceptionResolver提供了对处理器异常的处理,并渲染为视图,下面分析spring mvc默认配置的处理器异常解析逻辑。
版本:Spring Framework 4.x
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。默认配置
Dispatcher会加载上下文中的所有HandlerExceptionResolver
实例,如果没有使用默认配置。但WebMvcConfigurationSupport
定义了以下几个实例:
- ExceptionHandlerExceptionResolver 对控制器和控制器通知(@Controller&@ControllerAdvice)类上的异常处理器(@ExceptionHandler)方法提供支持。
- responseStatusExceptionResolver
- defaultHandlerExceptionResolver
Spring Boot(1.5x)没有对其进行修改。因此默认情况下将使用上述实例。
ExceptionHandlerExceptionResolver
执行Controller级别的@ExceptionHandler,或@ControllerAdvice级别的@ExceptionHandler,以解析异常。
ResponseStatusExceptionResolver
处理声明了@ResponseStatus
注解的异常,使用serlvet的 response.sendError()
将异常委托给servlet异常处理机制。
DefaultHandlerExceptionResolver
将标准的Spring MVC异常解析为HTTP错误状态码,同样使用了resposen.sendError()
。

更多精彩