學習Spring Boot (九)統一異常處理

2022-03-31 03:14:01 字數 1424 閱讀 6495

開發的時候,每個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 現在網上一般都...