Springboot项目中使用@RestControllerAdvice注解不生效排查思路

发布时间:2025-12-09 11:47:07 浏览次数:1

说明:

在后端编写业务逻辑时,可能会遇到异常抛出处理的情况,后端通常会通过throw出一个异常,然后通过@RestControllerAdvice注解标注自定义类进行统一处理,前端再将接收到的结果解析。

异常处理类

@RestControllerAdvice@Slf4jpublic class GlobalExceptionHandler {    /**     * 基础异常     */    @ExceptionHandler(BaseException.class)    public ResultVo baseException(BaseException e) {        log.error("base exception: {}", e.getMessage());        return ResultVo.error(e.getMessage());    }}

排查思路

  1. 检查异常处理类是否被Spring管理,@SpringbootApplication默认扫描本包和子包;如果为扫描到,使用@SpringbootApplication(scanBasePackages="xxx.xxx")
  2. 检查项目中的切面编程,查看是否在某个切面将异常try-catch,然后没有扔出来。常见的就是切面的环绕处理,捕获了异常忘记抛出来。

本人的问题:使用切面的环绕处理,记录日志,日志分为成功、失败、异常,所有将异常捕获处理了。
解决办法:捕获异常之后,然后再将异常抛出来就可以了。

原文链接:http://www.leftso.com/blog/430.html
特此记录下,以便后续查看

HCJXB
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477