• springboot配置全局异常拦截


    前言:springboot配置全局异常拦截,我们将使用 aop思想的一种实现,你告诉我需要拦截规则,我帮你把他们拦下来,具体你想做更细致的拦截筛选和拦截之后的处理,你自己通过@ControllerAdvice 配合@ExceptionHandler、@InitBinder 或 @ModelAttribute这三个注解以及被其注解的方法来自定义。

    接下来我们就说
     @ControllerAdvice 配合@ExceptionHandler 实现全局异常处理

    使用方法,我们在类上使用@ControllerAdvice 注解,我们可以配置是进行全局配置,还是具体类的拦截

    @ControllerAdvice 注解类

    1. @Target({ElementType.TYPE})
    2. @Retention(RetentionPolicy.RUNTIME)
    3. @Documented
    4. @Component
    5. public @interface ControllerAdvice {
    6. @AliasFor("basePackages")
    7. String[] value() default {};
    8. @AliasFor("value")
    9. String[] basePackages() default {};
    10. Class[] basePackageClasses() default {};
    11. Class[] assignableTypes() default {};
    12. Classextends Annotation>[] annotations() default {};
    13. }

    配合@ExceptionHandler 实现全局异常处理

    @ExceptionHandler

    1. @Target({ElementType.METHOD})
    2. @Retention(RetentionPolicy.RUNTIME)
    3. @Documented
    4. public @interface ExceptionHandler {
    5. Classextends Throwable>[] value() default {};
    6. }

    接收Throwable类作为参数,我们知道Throwable是所有异常的父类,所以说,可以自行指定所有异常

    比如在方法上加:@ExceptionHandler(IllegalArgumentException.class),则表明此方法处理

    IllegalArgumentException 类型的异常,如果参数为空,将默认为方法参数列表中列出的任何异常(方法抛出什么异常都接得住)。

    例子:

    1. @ControllerAdvice
    2. @Slf4j
    3. @RestController
    4. public class GlobalExceptionHandler {
    5. @ExceptionHandler(IllegalArgumentException.class)
    6. public ModelAndView handleException(IllegalArgumentException e){
    7. ModelAndView modelAndView = new ModelAndView("error");
    8. modelAndView.addObject("errorMessage", "参数不符合规范!");
    9. return modelAndView;
    10. }
    11. }

    具体的全局异常拦截可根据项目规则去定义

  • 相关阅读:
    Rust个人学习笔记2
    C# GetField 方法应用实例
    回归预测|GWO-BPNN-Adaboost算法原理及其实现(Matlab)
    【C/C++ API】C++内存分配和释放函数分析
    Matplotlib:Python数据可视化的全面指南
    MySQL入门第六天——函数与条件查询
    2024腾讯校招后端面试真题汇总及其解答(二)
    G. Path Prefixes 树上二分
    Talk预告 | FAIR研究科学家刘壮:高效和可扩展的视觉神经网络架构
    go语言ast语法解析
  • 原文地址:https://blog.csdn.net/qq_42281649/article/details/126742320