由於專案是前後端完全分離的 所以返回的是 json 不是頁面
先來說下 spring是預設只回滾runtimeexception 其他的異常你可以根據專案需要自己定義
還有你如果try catch了的話 你如果也在catch裡面拋了這個異常 還是不能回滾的
只要你try catch就不能回滾 這一點切記
所以盡量少使用try catch
接下來說統一異常處理 直接上**
@restcontrolleradvice 這個註解是@controlleradvice和@responsebody(自動繫結json)的結合 可以直接看原始碼
@exceptionhandler統一處理某一類異常,從而能夠減少**重複率和複雜度
之後你就可以在errhandle寫你的業務邏輯了
其實我覺得restcontrolleradvice這個註解應該是利用了aop 當你controller異常的時候這個註解會直接捕獲到
當然用的前提就是要在你的service上加上
@transactional(rollbackfor=exception.class)
這個註解 這樣spring才能捕獲到
@restcontrolleradvice 這個註解還可以配置自動掃瞄那個包
可以配置屬性來掃瞄自己想掃瞄的包 其他的屬性可以看原始碼就可以看出來
Spring Boot學習筆記8 統一異常處理
雖然,spring boot中實現了預設的error對映,但是在實際應用中,預設的錯誤頁面對使用者來說並不夠友好,我們通常需要去實現我們自己的異常提示。下面我們以之前的spring bootx學習筆記7 使用thymeleaf模板引擎渲染web檢視為基礎,進行統一異常處理的改造。public cla...
spring boot統一異常處理
1 統一處理異常的html頁面。spring boot提供了乙個預設的對映 error,當處理中丟擲異常之後,會轉到該請求中處理,並且該請求有乙個預設的錯誤頁面用來展示異常內容。例如,我們隨便輸入乙個錯誤的url,瀏覽器響應的頁面如下圖所示 它是根據狀態碼來顯示錯誤頁面的,那麼我們不想要 sprin...
SpringBoot 統一異常處理
統一異常處理 controlleradvice public class globalexceptionhandler exceptionhandler exception.class responsebody public r handleexception exception e 現在網上一般都...