詳解如何在spring中創(chuàng)建全局異常處理器
全局異常處理器在實(shí)際項(xiàng)目開發(fā)中是一個(gè)很重要的工具;對保證代碼的正常運(yùn)行有很重要的作用。當(dāng)然這樣也可以使得用戶體驗(yàn)更好,總不可能讓用戶看到我們后端密密麻麻的報(bào)錯(cuò)信息吧。
下面來講一下如何創(chuàng)建一個(gè)全局異常處理器:
1.創(chuàng)建一個(gè)全局異常處理類:并添加@RestControllerAdvice注解
2.在類中創(chuàng)建方法用于捕獲異常:在方法上添加注解:@ExceptionHandler
方法中的形參就是異常的類型。
下面是對注解的簡單介紹以及完整的代碼:
@RestControllerAdvice:
該注解 由@ControllerAdvice、@ResponseBody組成
而@ControllerAdvice繼承了@Component
@RestControllerAdvice本質(zhì)上是個(gè)Component
@ExceptionHandler:用于指定異常處理方法。當(dāng)與@RestControllerAdvice配合使用時(shí),用于全局處理控制器里的異常。
import com.sky.exception.BaseException; import com.sky.result.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; /** * 全局異常處理器,處理項(xiàng)目中拋出的業(yè)務(wù)異常 */ @RestControllerAdvice @Slf4j public class GlobalExceptionHandler { /** * 捕獲業(yè)務(wù)異常 * @param ex * @return */ @ExceptionHandler public Result exceptionHandler(BaseException ex){ log.error("異常信息:{}", ex.getMessage()); return Result.error(ex.getMessage()); } }
這樣當(dāng)代碼運(yùn)行出現(xiàn)對應(yīng)的異常的時(shí)候,就會被捕獲,并且執(zhí)行方法中的代碼。
到此這篇關(guān)于詳解如何在spring中創(chuàng)建全局異常處理器的文章就介紹到這了,更多相關(guān)spring創(chuàng)建全局異常處理器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中靜態(tài)代碼塊與構(gòu)造方法的執(zhí)行順序判斷
對靜態(tài)代碼塊以及構(gòu)造函數(shù)的執(zhí)行先后順序,一直很迷惑,直到最近看到一段代碼,發(fā)現(xiàn)終于弄懂了,所以這篇文章主要給大家介紹了關(guān)于如何判斷java中靜態(tài)代碼塊與構(gòu)造方法的執(zhí)行順序的相關(guān)資料,需要的朋友可以參考下。2017-12-12基于Java的MathML轉(zhuǎn)圖片的方法(示例代碼)
最近接到一個(gè)新需求mathML轉(zhuǎn)圖片怎么實(shí)現(xiàn)呢?剛開始還真是蒙圈了,不知道怎么實(shí)現(xiàn),今天小編記錄一種基于Java的MathML轉(zhuǎn)圖片的方法,感興趣的朋友一起看看吧2021-06-06Java中隊(duì)列Queue和Deque的區(qū)別與代碼實(shí)例
學(xué)過數(shù)據(jù)結(jié)構(gòu)的,一定對隊(duì)列不陌生,java也實(shí)現(xiàn)了隊(duì)列,下面這篇文章主要給大家介紹了關(guān)于Java中隊(duì)列Queue和Deque區(qū)別的相關(guān)資料,需要的朋友可以參考下2021-08-08SpringBoot中的server.context-path的實(shí)現(xiàn)
本文主要介紹了SpringBoot中的server.context-path的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08詳解Java實(shí)現(xiàn)設(shè)計(jì)模式之責(zé)任鏈模式
責(zé)任鏈模式是一種行為設(shè)計(jì)模式,允許你將請求沿著處理鏈發(fā)送,然后處理者都可對其進(jìn)行處理,完成后可以再將其傳遞給下一個(gè)處理者。下面將會舉例說明什么是責(zé)任鏈模式,責(zé)任鏈模式該如何使用2021-06-06