基於@ControllerAdvice註解的SpringBoot項目全局異常處理

異常在每個項目或者產品裡都是或多或少存在的,那麼異常處理就變得尤為重要,像try-catch就是用來處理異常,但如果每個方法都判斷處理各類異常,那就頭重腳輕了。因而springboot就引入了全局異常處理,註解@ControllerAdvice就是來幹這個事的。

基於@ControllerAdvice註解的SpringBoot項目全局異常處理

這裡寫了一個controller,如果去請求的肯定是會報錯的,頁面展示是這個效果。

基於@ControllerAdvice註解的SpringBoot項目全局異常處理

接下來就用@ControllerAdvice來定義全局異常來處理。定義一個異常輔助類,把@ControllerAdvice加到類上,註解@ExceptionHandler添加到異常處理方法上。(value = Exception.class) value 標識了要攔截的類型,Exception.class包含所有了,也可以捕獲具體的異常類。

基於@ControllerAdvice註解的SpringBoot項目全局異常處理

這裡使用ModelAndView的把數據返回到頁面,ModelAndView的viewName屬性值就是頁面位置,這裡的響應頁面是templates 目錄ftl下的error.ftl。

這時候重新在請求上面的地址,展示的就是如下的頁面。

基於@ControllerAdvice註解的SpringBoot項目全局異常處理

我們也可以給異常配上一張有意思的圖片,可以在ModelAndView里加以配置,異常頁面就不會很單調了。


分享到:


相關文章: