springboot如何添加全局異常捕獲類
這篇文章主要介紹了springboot如何添加全局異常捕獲類,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
前幾天工作中遇到一個(gè)項(xiàng)目,前后端分離的,作為后端開發(fā)專注開發(fā)接口。對(duì)于程序中出現(xiàn)的異常如果不進(jìn)行處理,將報(bào)錯(cuò)信息直接返回到前端十=時(shí)不優(yōu)雅的,因此需要對(duì)異常進(jìn)行捕獲和處理,但是每個(gè)接口都單獨(dú)處理異常則顯得代碼十分臃腫,因此寫了個(gè)異常捕獲類對(duì)全局出現(xiàn)的異常進(jìn)行統(tǒng)一處理。
1.如果程序中出現(xiàn)異常如下:
@RestController public class HelloController { @RequestMapping("/hello") public String hello(String idNum) { throw new BusinessException("拋出業(yè)務(wù)異常"); } }
2.全局異常處理類:
//@ControllerAdvice 該注解定義全局異常處理類 @ControllerAdvice public class GlobalExceptionHandler { //@ExceptionHandler 該注解聲明異常處理方法 //value=BusinessException.classb表示處理拋出的BusinessException異常 @ExceptionHandler(value = BusinessException.class) public ReturnResult defaultErrorHandler(HttpServletRequest req, Exception e) { ReturnResult result = new ReturnResult(); //出現(xiàn)異常后返回到前端的信息 result.setCode("-1"); result.setMsg("出現(xiàn)了業(yè)務(wù)異常"); //打印異常信息 logger.error("調(diào)用失敗", e); return result; } }
3.訪問/hello資源時(shí)被2中捕獲BusinessException異常的類捕獲,并返回前端數(shù)據(jù){"code":"-1", "message":"出現(xiàn)業(yè)務(wù)異常"}, 日志打印信息如下:
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaWeb使用mvc模式實(shí)現(xiàn)登錄功能
本文主要介紹了JavaWeb使用mvc模式實(shí)現(xiàn)登錄功能,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01SpringCloud+nacos部署在多ip環(huán)境下統(tǒng)一nacos服務(wù)注冊(cè)ip(親測有效)
在部署SpringCoud項(xiàng)目的時(shí)候分服務(wù)器部署注冊(cè)同一個(gè)nacos服務(wù),但是在服務(wù)器有多個(gè)ip存在的同時(shí)(內(nèi)外網(wǎng)),就會(huì)出現(xiàn)注冊(cè)服務(wù)ip不同的問題,導(dǎo)致一些接口無法連接訪問,經(jīng)過多次排查終于找到問題并找到解決方法,需要的朋友可以參考下2023-04-04IDEA配置Maven并版本統(tǒng)一管理的實(shí)現(xiàn)
本文主要介紹了IDEA配置Maven并版本統(tǒng)一管理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09Spring Boot使用過濾器和攔截器分別實(shí)現(xiàn)REST接口簡易安全認(rèn)證示例代碼詳解
這篇文章主要介紹了Spring Boot使用過濾器和攔截器分別實(shí)現(xiàn)REST接口簡易安全認(rèn)證示例代碼,通過開發(fā)實(shí)踐,理解過濾器和攔截器的工作原理,需要的朋友可以參考下2018-06-06Mybatis RowBounds 限制查詢條數(shù)的實(shí)現(xiàn)代碼
Oracle 數(shù)據(jù)庫查詢?cè)黾覴owBounds限制查詢條數(shù),默認(rèn)是0到1000條。下面給大家分享Mybatis RowBounds 限制查詢條數(shù)的實(shí)現(xiàn)代碼,需要的朋友參考下吧2016-11-11