SpringBoot统一异常处理流程

简介: SpringBoot统一异常处理流程

Spring 3.2新增**@ControllerAdvice** 注解用于定义

  • @ExceptionHandler
  • @InitBinder
  • @ModelAttribute\

并应用到所有@RequestMapping。

BasicErrorController

SpringBoot内置了一个BasicErrorController对异常进行统一的处理,当在页面发生异常的时候会自动把请求转到/error(Spring Boot提供的一个默认的映射) ,可以自定义页面内容,只需在classpath路径下新建error页面即可。当然我们也可以自定义error页面的路径

如:

server.error.path=/custom/error

BasicErrorController提供两种返回错误一种是页面返回、当你是页面请求的时候就会返回页面,另外一种是json请求的时候就会返回json错误。

定义全局异常处理类:并用@ControllerAdvice注解

  • 返回视图,新建方法defaultErrorHandler 用@ExceptionHandler注解
  • 返回JSON,新建方法 用jsonErrorHandler 用@ExceptionHandler和@ResponseBody(必须)注解
  • image.png

自定义异常类

继承Exception(或RuntimeException)

image.png

页面

image.png

如果全部异常处理返回json,那么可以使用 @RestControllerAdvice 代替 @ControllerAdvice ,这样在方法上就可以不需要添加 @ResponseBody

总结

image.png

目录
相关文章
|
11天前
|
前端开发 Java 应用服务中间件
SpringBoot-Run启动流程
探索Spring Boot启动流程,从加载配置、创建应用上下文、自动配置到启动内嵌服务器。启动类是入口点,`@SpringBootApplication`标记启动,`SpringApplication.run`启动应用。自动配置基于条件注解配置Bean,应用上下文由`SpringApplication`创建并刷新。内嵌服务器如Tomcat随应用启动,简化部署。理解此流程有助于深入掌握Spring Boot。
157 2
|
2月前
|
缓存 Java 程序员
springboot的启动流程总结
springboot的启动流程总结
|
2月前
|
设计模式 Java 容器
SpringBoot2 | SpringBoot启动流程源码分析(二)
SpringBoot2 | SpringBoot启动流程源码分析(二)
43 0
|
3月前
|
设计模式 Java 机器人
SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter
SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter
|
4月前
|
安全 NoSQL Java
SpringBoot集成Activiti5.22在线流程设计器
SpringBoot集成Activiti5.22在线流程设计器
47 0
SpringBoot集成Activiti5.22在线流程设计器
|
4月前
|
安全 前端开发 Java
Spring Security 自定义异常失效?从源码分析到解决方案
Spring Security 自定义异常失效?从源码分析到解决方案
|
1月前
|
前端开发 Java 数据安全/隐私保护
Spring Boot3自定义异常及全局异常捕获
Spring Boot3自定义异常及全局异常捕获
42 1
|
2月前
|
缓存 Java uml
SpringBoot2 | Spring IOC 流程中核心扩展接口的12个扩展点源码分析(十一)
SpringBoot2 | Spring IOC 流程中核心扩展接口的12个扩展点源码分析(十一)
35 0
|
2月前
|
Java 容器 Spring
SpringBoot2 | @SpringBootApplication注解 自动化配置流程源码分析(三)
SpringBoot2 | @SpringBootApplication注解 自动化配置流程源码分析(三)
32 0
|
2月前
|
Java 中间件 容器
SpringBoot2 | SpringBoot启动流程源码分析(一)
SpringBoot2 | SpringBoot启动流程源码分析(一)
45 0