SpringBoot的异常处理
1 、 默认规则
• 默认情况下 , Spring Boot 提供 / error 处理所有错误的映射
• 对于机器客户端 , 它将生成JSON 响应 , 其中包含错误 , HTTP 状态和异常消息的详细信息对于浏览器客户端 , 响应一个 “ whitelabel ” 错误视图 , 以 HTML 格式呈现相同的数据
在/error文件夹下存放错误处理页面。
2 、 定制错误处理逻辑
• 自定义错误页
error / 404 . html error / 5 xx . html ; 有精确的错误状态码页面就匹配精确 , 没有就找
4 xx . html ; 如果都没有就触发白页
• @ ControllerAdvice + @ ExceptionHandler 处理全局异常 ; 底层是 ExceptionHandlerExceptionResolver 支 } 寺的
• @ ResponseStatus + 自定义异常 ; 底层是 ResponseStatusExceptionResolver , 把
responsestatus 注解的信息底层调用 response . send Error ( statusCode , resolved Reason ) ;
tomcat 发送的 / error
• Spring 底层的异常 , 如参数类型转换异常 ; DefaultHandlerExceptionResolver 处理框架底
层的异常 。
• ErrorViewResolver 实现自定义处理异常 ;
response . sendError 0 error 请求京尤会转给 controller 你的异常没有任何人能处理 。 tomcat 底层 response . sendError 。 error 请求就会转给controller,basicErrorController 要去的页面地址是 ErrorViewResolver
异常处理控制器
WEB原生组件(servlet filter listener) 的注入
方式一: 使用servletAPI
编写SERVLET实现类
在SpringBoot主类上添加注解,标记servlet的位置
编写Filter
编写listener
方式二: 使用 RegistrationBean,
ServletRegistrationBean , FilterRegistrationBean,ServletListenerRegistrationBean