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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM