SpringBoot -- @RestControllerAdvice 注解
2021-06-06 15:03
标签:ase 示例 有关 tail lan 异常 https blog 过程 在 SpringBoot 中,通常使用注解 @RestControllerAdvice 来做全局统一异常处理。 @RestControllerAdvice 用在类上,对 Controller 进行增强的,可以全局捕获 spring mvc 抛的异常。 @ExceptionHandler(value = Exception.class) @ExceptionHandler 用在方法上,作用是用来捕获指定的异常。 @RestControllerAdvice = @ControllerAdvice + @ResponseBody @RestControllerAdvice 的源码如下: 如果在运行时发现了异常,希望将异常统一返回,这里就需要用到 @RestControllerAdvice。 新建一个全局异常处理类:GlobalExceptionHandler 这个类的含义就是,如果运行过程中,抛出 SQLException 异常或者 SQLIntegrityConstraintViolationException 异常,统一由这个类进行处理,返回统一的异常信息提示。 https://blog.csdn.net/qq_35098526/article/details/88949425 https://www.jianshu.com/p/47aeeba6414c 每天学习一点点,每天进步一点点。 SpringBoot -- @RestControllerAdvice 注解 标签:ase 示例 有关 tail lan 异常 https blog 过程 原文地址:https://www.cnblogs.com/youcoding/p/14607744.html前言
源码分析
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@ControllerAdvice
@ResponseBody
public @interface RestControllerAdvice {
@AliasFor(
annotation = ControllerAdvice.class
)
String[] value() default {};
@AliasFor(
annotation = ControllerAdvice.class
)
String[] basePackages() default {};
@AliasFor(
annotation = ControllerAdvice.class
)
Class>[] basePackageClasses() default {};
@AliasFor(
annotation = ControllerAdvice.class
)
Class>[] assignableTypes() default {};
@AliasFor(
annotation = ControllerAdvice.class
)
Class extends Annotation>[] annotations() default {};
}
示例
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(SQLException.class)
public RespBean sqlException(SQLException e){
if (e instanceof SQLIntegrityConstraintViolationException){
return RespBean.error("该数据有关联数据,操作失败!");
}
return RespBean.error("数据库异常!");
}
}
参考资源
文章标题:SpringBoot -- @RestControllerAdvice 注解
文章链接:http://soscw.com/index.php/essay/91326.html