全域性統一異常處理

2021-10-19 11:33:36 字數 1945 閱讀 2205

目前的**中如果發生系統異常,則直接會給使用者丟擲不友好的異常資訊。為了增加使用者的體驗,應該給一些適當資訊進行提示。例如刪除頻道的**,如下

目前紅框圈起來的是可以給使用者友好提示的,但是當執行刪除這一行**,如何失敗了該如何處理。有可能系統會丟擲異常。那這個時候就不應該把異常資訊直接返回給使用者。那該如何處理呢?

這些異常不論**丟擲最後都會向上丟擲到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...