如何優(yōu)雅的拋出Spring Boot注解的異常詳解
前言
Spring Boot它簡化了配置,內(nèi)嵌式tomcat容器,用于快速開發(fā)基于Spring的應用,是一個微框架,本文主要介紹的是關于如何優(yōu)雅的拋出Spring Boot注解的異常的相關內(nèi)容,下面話不多說了,來一起看看詳細的介紹吧
平時我們在寫代碼的時候肯定要進行很多參數(shù)驗證,最開始的時候我們一般都是這樣處理的 如下圖

看起來好像也沒什么,但是 如果參數(shù)多了呢?你就會看到這樣的校驗

OMG!??! 有沒有感覺稍微有點視覺沖擊,雖然這樣寫的已經(jīng)很規(guī)整了,但是還是不夠簡單和優(yōu)雅。
在SpringBoot中,我們可以直接對對象加上@vaild進行參數(shù)校驗

這樣寫是不是看起來優(yōu)雅了很多,沒錯!我們就是要追求這種 小即美 的感覺!?。。?!
雖然這樣看起來優(yōu)雅了很多,但是 還有點問題

當我們進行參數(shù)校驗的時候 會看到

OMG的! 這一長串又蹦出來了,在頁面上彈出來很丑,而且提示不夠明確
為什么就不能彈出來message里面的內(nèi)容呢???
顯然 是可以的,不過 這個設計注解的人想給后臺更多提示,拋出了更詳細的內(nèi)容,實在是丑了點。
于是為了不寫那么丑的代碼,我改造了一些網(wǎng)上的代碼
@ControllerAdvice
public class ExceptionHandle {
@ExceptionHandler(value = RuntimeException.class)
@ResponseBody
public String handle(RuntimeException e) {
if (e instanceof RuntimeException) {
RuntimeException exception = e;
return exception.getMessage();
} else {
return "未知錯誤";
}
}
public void exceptionMessage(BindingResult bindingResult) throws SeeingException {
if (bindingResult.hasErrors()) {
String msg = bindingResult.getFieldError().getDefaultMessage();
throw new SeeingException(ErrorCode.BUSINESS_EXCEPTION, msg);
}
}
}
通過上面簡單的幾行代碼我們就可以直接拿到

另外兩個參數(shù)是公司框架里面的內(nèi)容,大家可以忽略
這時候只剩下了message里面的內(nèi)容,不過在使用的時候 需要調(diào)用下exceptionMessage方法

還是有些麻煩的,我的想法是可以自定義一個注解,把這部分代碼整合進去,有興趣的可以去試下。
不過我們終于還是達到了目標不是。
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- SpringMvc @Valid如何拋出攔截異常
- springboot springmvc拋出全局異常的解決方法
- 解決spring @ControllerAdvice處理異常無法正確匹配自定義異常
- Spring Boot集成Druid出現(xiàn)異常報錯的原因及解決
- SpringBoot2 JPA解決懶加載異常的問題
- Spring Boot Maven Plugin打包異常解決方案
- Springboot異常錯誤處理解決方案詳解
- spring配置文件解析失敗報”cvc-elt.1: 找不到元素 ''''beans'''' 的聲明”異常解決
- Spring應用拋出NoUniqueBeanDefinitionException異常的解決方案
相關文章
Java8新特性Optional類及新時間日期API示例詳解
這篇文章主要為大家介紹了Java8新特性Optional類及新時間日期API示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
淺談Java內(nèi)部類與靜態(tài)內(nèi)部類的區(qū)別
本文主要介紹了淺談Java內(nèi)部類與靜態(tài)內(nèi)部類的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06
基于Spring Mvc實現(xiàn)的Excel文件上傳下載示例
本篇文章主要介紹了基于Spring Mvc實現(xiàn)的Excel文件上傳下載示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
一文帶你掌握Java開發(fā)者如何接入并使用DeepSeek
對于Java開發(fā)者來說,將DeepSeek集成到項目中,可以極大地提升數(shù)據(jù)處理和分析的效率,下面小編就來為大家介紹一下具體的調(diào)用方法吧2025-03-03

