開發的時候,每個controller的介面都需要進行捕捉異常的處理,以前有的是用切面做的,但是springmvc中就自帶了@controlleradvice
,用來定義統一異常處理類,在 springboot 中額外增加了@restcontrolleradvice
。
建立全域性異常處理類
通過使用@controlleradvice
或者@restcontrolleradvice
定義統一的異常處理類。
在方法的註解上加上@exceptionhandler
用來指定這個方法用來處理哪種異常型別,然後處理完異常,將相關的結果返回。
@restcontrolleradvice
public
class
exceptionhandler
@org.springframework.web.bind.annotation.exceptionhandler(duplicatekeyexception.class)
public responseentityhandleduplicatekeyexception(duplicatekeyexception e)
@org.springframework.web.bind.annotation.exceptionhandler(authorizationexception.class)
public responseentityhandleauthorizationexception(authorizationexception e)
/*** 處理異常
**@param e 異常
*@return 狀態碼
*/@org.springframework.web.bind.annotation.exceptionhandler(exception.class)
public responseentityhandleexception(exception e)
}
測試
我在 controller 寫了乙個新增的方法,由於我的資料庫中設定了 username 字段唯一索引,所以相同的值新增第二次的時候,肯定會丟擲上面方法中的第二個異常duplicatekeyexception
:
public responseentity insert(@requestbody sysuserentity user)
第一次新增的時候:
第二次新增的時候返回異常資訊:
SpringBoot中處理全域性統一異常 九
本篇文章主要介紹的是springboot專案進行全域性異常的處理。org.springframework.bootgroupid spring boot starter webartifactid dependency org.springframework.bootgroupid spring b...
spring boot統一異常處理
1 統一處理異常的html頁面。spring boot提供了乙個預設的對映 error,當處理中丟擲異常之後,會轉到該請求中處理,並且該請求有乙個預設的錯誤頁面用來展示異常內容。例如,我們隨便輸入乙個錯誤的url,瀏覽器響應的頁面如下圖所示 它是根據狀態碼來顯示錯誤頁面的,那麼我們不想要 sprin...
SpringBoot 統一異常處理
統一異常處理 controlleradvice public class globalexceptionhandler exceptionhandler exception.class responsebody public r handleexception exception e 現在網上一般都...