Springboot項目中使用@RestControllerAdvice註解不生效排查思路

說明:

在後端編寫業務邏輯時,可能會遇到異常拋出處理的情況,後端通常會通過throw出一個異常,然後通過@RestControllerAdvice註解標註自定義類進行統一處理,前端再將接收到的結果解析。

異常處理類

@RestControllerAdvice
@Slf4j
public 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,然後沒有扔出來。常見的就是切面的環繞處理,捕獲了異常忘記拋出來。

本人的問題:使用切面的環繞處理,記錄日誌,日誌分為成功、失敗、異常,所有將異常捕獲處理了。
解決辦法:捕獲異常之後,然後再將異常拋出來就可以了。

原文鏈接://www.leftso.com/blog/430.html
特此記錄下,以便後續查看