目前的**中如果發生系統異常,則直接會給使用者丟擲不友好的異常資訊。為了增加使用者的體驗,應該給一些適當資訊進行提示。例如刪除頻道的**,如下
目前紅框圈起來的是可以給使用者友好提示的,但是當執行刪除這一行**,如何失敗了該如何處理。有可能系統會丟擲異常。那這個時候就不應該把異常資訊直接返回給使用者。那該如何處理呢?
這些異常不論**丟擲最後都會向上丟擲到controller所以aop做攔截之後處理.專案開發中肯定會設定全域性異常處理,不管系統發生了任何不可知的異常資訊,都應該給使用者返回友好提示資訊。
在oldlu-leadnews-common模組中新建類exceptioncatch
package
com.oldlu.common.exception
;import
com.oldlu.model.common.dtos.
responseresult
;import
com.oldlu.model.common.enums.
;import
lombok.extern.log4j.
log4j2
;import
org.springframework.web.bind.annotation.
controlleradvice
;import
org.springframework.web.bind.annotation.
exceptionhandler
;import
org.springframework.web.bind.annotation.
responsebody
;@controlleradvice
//控制器增強
@log4j2
public
class
exceptioncatch
", exception.
getmessage()
);//返回通用異常
return
responseresult
.errorresult
(.server_error);}
}
@controlleradvice
控制器增強註解
@exceptionhandler
異常處理器 與上面註解一起使用,可以攔截指定的異常資訊
在oldlu-leadnews-admin模組中新增類exceptioncatchconfig
package
com.oldlu.admin.config
;import
org.springframework.context.annotation.
componentscan
;import
org.springframework.context.annotation.
configuration
;@configuration
@componentscan
("com.oldlu.common.exception"
)public
class
exceptioncatchconfig
如:在刪除頻道的時候傳的id為數值型別,如果不新增全域性異常返回如下:
新增異常資訊以後,返回如下:
springboot專案全域性統一異常處理
在springboot專案開發過程中,不可避免需要處理各種異常,因此各層會出現大量的try catch finally 塊。這樣不僅導致 冗餘,還影響 的可讀性。這樣就需要定義全域性統一異常處理,方便各層呼叫不必單獨捕獲異常。1.複製到專案中通過簡單的配置即可實現 2.可以靈活的根據自己的業務異常進...
spring boot 全域性異常統一攔截處理
經常開發介面的同學肯定知道,介面返回的資料格式必須有固定的格式,方便呼叫者 對於不同的異常我們在實際開發中最好也有統一的處理 在spring boot中與預設的異常頁面,如果我們要開發rest風格的api,返回的json資料 那麼異常提示也要是json格式的,返回乙個頁面的錯誤異常就不友好了 接下來...
SpringBoot中處理全域性統一異常 九
本篇文章主要介紹的是springboot專案進行全域性異常的處理。org.springframework.bootgroupid spring boot starter webartifactid dependency org.springframework.bootgroupid spring b...