SpringBoot中@RestControllerAdvice注解的使用
1.主要作用
@RestControllerAdvice主要用精簡(jiǎn)客戶端返回異常,它可以捕獲各種異常
2.判斷異常的類型
- 后端數(shù)據(jù)校驗(yàn)異常
- 未授權(quán)異常
- 自定義異常
- 普通異常
3.實(shí)現(xiàn)
未優(yōu)化前
import com.qing.emos.wx.exception.EmosException; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.UnauthorizedException; import org.springframework.http.HttpStatus; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.*; @Slf4j //@RestControllerAdvice可以捕獲SpringMVC異常 @RestControllerAdvice public class ExceptionAdvice { @ResponseBody @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) // ExceptionHandler用于全局捕獲異常 @ExceptionHandler(Exception.class) public String validExcepionHandler(Exception e){ log.error("執(zhí)行異常",e); // 后端驗(yàn)證失敗的異常,參數(shù)沒(méi)傳,或者傳的不對(duì) if(e instanceof MethodArgumentNotValidException){ MethodArgumentNotValidException exception = (MethodArgumentNotValidException) e; return exception.getBindingResult().getFieldError().getDefaultMessage(); } // 精簡(jiǎn)異常的內(nèi)容,EmosException為自己定義異常 else if(e instanceof EmosException){ EmosException exception = (EmosException) e; return exception.getMsg(); } // 未授權(quán)異常 else if(e instanceof UnauthorizedException){ return "你不具備相關(guān)權(quán)限"; } // 普通異常 else { return "后端執(zhí)行異常"; } } }
優(yōu)化后
到此這篇關(guān)于SpringBoot中@RestControllerAdvice注解的使用的文章就介紹到這了,更多相關(guān)SpringBoot的@RestControllerAdvice內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot中@RestControllerAdvice注解實(shí)現(xiàn)全局異常處理類
- springboot的統(tǒng)一異常處理,使用@RestControllerAdvice詳解
- SpringBoot項(xiàng)目中@RestControllerAdvice全局異常失效問(wèn)題的解決
- SpringBoot中@RestControllerAdvice @ExceptionHandler異常統(tǒng)一處理類失效原因分析
- SpringBoot的@RestControllerAdvice作用詳解
- SpringBoot常用注解@RestControllerAdvice詳解
- SpringBoot中的@RestControllerAdvice注解詳解
- SpringBoot?@RestControllerAdvice注解對(duì)返回值統(tǒng)一封裝的處理方法
- SpringBoot中@RestControllerAdvice 全局異常處理的實(shí)現(xiàn)
相關(guān)文章
SpringBoot后端解決跨域問(wèn)題的3種方案分享
這篇文章主要給大家分享介紹了關(guān)于SpringBoot后端解決跨域問(wèn)題的3種方案,跨域指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本,它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制,需要的朋友可以參考下2023-07-07Mybatis通過(guò)Spring完成代理類注入的流程分析
這篇文章主要介紹了Mybatis通過(guò)Spring完成代理類注入的流程分析,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08Java 8 Stream Api 中的 map和 flatMap 操作方法
Java 8提供了非常好用的 Stream API ,可以很方便的操作集合。今天通過(guò)這篇文章給大家分享Java 8 Stream Api 中的 map和 flatMap 操作方法,需要的朋友可以參考下2019-11-11Spring報(bào)錯(cuò):Error creating bean with name的問(wèn)
這篇文章主要介紹了Spring報(bào)錯(cuò):Error creating bean with name的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08springboot開啟mybatis駝峰命名自動(dòng)映射的三種方式
這篇文章給大家總結(jié)springboot開啟mybatis駝峰命名自動(dòng)映射的三種方式,文章并通過(guò)代碼示例給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-02-02springboot 如何解決cross跨域請(qǐng)求的問(wèn)題
這篇文章主要介紹了springboot 如何解決cross跨域請(qǐng)求的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10AsyncHttpClient?RequestFilter請(qǐng)求篩選源碼解讀
這篇文章主要為大家介紹了AsyncHttpClient?RequestFilter請(qǐng)求篩選源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12