springboot如何添加全局異常捕獲類
這篇文章主要介紹了springboot如何添加全局異常捕獲類,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
前幾天工作中遇到一個項目,前后端分離的,作為后端開發(fā)專注開發(fā)接口。對于程序中出現(xiàn)的異常如果不進行處理,將報錯信息直接返回到前端十=時不優(yōu)雅的,因此需要對異常進行捕獲和處理,但是每個接口都單獨處理異常則顯得代碼十分臃腫,因此寫了個異常捕獲類對全局出現(xià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資源時被2中捕獲BusinessException異常的類捕獲,并返回前端數(shù)據(jù){"code":"-1", "message":"出現(xiàn)業(yè)務(wù)異常"}, 日志打印信息如下:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud+nacos部署在多ip環(huán)境下統(tǒng)一nacos服務(wù)注冊ip(親測有效)
在部署SpringCoud項目的時候分服務(wù)器部署注冊同一個nacos服務(wù),但是在服務(wù)器有多個ip存在的同時(內(nèi)外網(wǎng)),就會出現(xiàn)注冊服務(wù)ip不同的問題,導(dǎo)致一些接口無法連接訪問,經(jīng)過多次排查終于找到問題并找到解決方法,需要的朋友可以參考下2023-04-04IDEA配置Maven并版本統(tǒng)一管理的實現(xiàn)
本文主要介紹了IDEA配置Maven并版本統(tǒng)一管理的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09Spring Boot使用過濾器和攔截器分別實現(xiàn)REST接口簡易安全認證示例代碼詳解
這篇文章主要介紹了Spring Boot使用過濾器和攔截器分別實現(xiàn)REST接口簡易安全認證示例代碼,通過開發(fā)實踐,理解過濾器和攔截器的工作原理,需要的朋友可以參考下2018-06-06Mybatis RowBounds 限制查詢條數(shù)的實現(xiàn)代碼
Oracle 數(shù)據(jù)庫查詢增加RowBounds限制查詢條數(shù),默認是0到1000條。下面給大家分享Mybatis RowBounds 限制查詢條數(shù)的實現(xiàn)代碼,需要的朋友參考下吧2016-11-11