springboot如何添加全局異常捕獲類
這篇文章主要介紹了springboot如何添加全局異常捕獲類,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
前幾天工作中遇到一個(gè)項(xiàng)目,前后端分離的,作為后端開發(fā)專注開發(fā)接口。對于程序中出現(xiàn)的異常如果不進(jìn)行處理,將報(bào)錯信息直接返回到前端十=時(shí)不優(yōu)雅的,因此需要對異常進(jìn)行捕獲和處理,但是每個(gè)接口都單獨(dú)處理異常則顯得代碼十分臃腫,因此寫了個(gè)異常捕獲類對全局出現(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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java生成Echarts表圖的2種實(shí)現(xiàn)方案
這篇文章主要給大家介紹了關(guān)于Java生成Echarts表圖的2種實(shí)現(xiàn)方案,ECharts是一款功能非常強(qiáng)大的JavaScript圖表庫,文中通過代碼實(shí)例介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09
Java并發(fā)之原子性 有序性 可見性及Happen Before原則
一提到happens-before原則,就讓人有點(diǎn)“丈二和尚摸不著頭腦”。這個(gè)涵蓋了整個(gè)JMM中可見性原則的規(guī)則,究竟如何理解,把我個(gè)人一些理解記錄下來。下面可以和小編一起學(xué)習(xí)Java 并發(fā)四個(gè)原則2021-09-09
Spring?多數(shù)據(jù)源方法級別注解實(shí)現(xiàn)過程
多數(shù)據(jù)源管理是Spring框架中非常重要的一部分,它可以提高應(yīng)用程序的靈活性和可靠性,從而更好地滿足業(yè)務(wù)需求,這篇文章主要介紹了Spring?多數(shù)據(jù)源方法級別注解實(shí)現(xiàn),需要的朋友可以參考下2023-07-07
Spring使用AspectJ的注解式實(shí)現(xiàn)AOP面向切面編程
這篇文章主要介紹了Spring使用AspectJ的注解式實(shí)現(xiàn)AOP面向切面編程的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
SpringBoot如何讀取war包jar包和Resource資源
這篇文章主要介紹了SpringBoot如何讀取war包jar包和Resource資源,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Java實(shí)現(xiàn)精準(zhǔn)Excel數(shù)據(jù)排序的方法詳解
在數(shù)據(jù)處理或者數(shù)據(jù)分析的場景中,需要對已有的數(shù)據(jù)進(jìn)行排序,在Excel中可以通過排序功能進(jìn)行整理數(shù)據(jù),而在Java中,則可以借助Excel表格插件對數(shù)據(jù)進(jìn)行批量排序,下面我們就來學(xué)習(xí)一下常見的數(shù)據(jù)排序方法吧2023-10-10
java 靜態(tài)代理 動態(tài)代理深入學(xué)習(xí)
代理模式是常用的java設(shè)計(jì)模式,特征是代理類與委托類有同樣的接口,代理類主要負(fù)責(zé)為委托類預(yù)處理消息、過濾消息、把消息轉(zhuǎn)發(fā)給委托類,以及事后處理消息等,需要的朋友可以參考下2012-11-11

