欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何優(yōu)雅的拋出Spring Boot注解的異常詳解

 更新時(shí)間:2018年12月05日 09:36:52   作者:山岳之巔  
這篇文章主要給大家介紹了關(guān)于如何優(yōu)雅的拋出Spring Boot注解的異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

Spring Boot它簡(jiǎn)化了配置,內(nèi)嵌式tomcat容器,用于快速開發(fā)基于Spring的應(yīng)用,是一個(gè)微框架,本文主要介紹的是關(guān)于如何優(yōu)雅的拋出Spring Boot注解的異常的相關(guān)內(nèi)容,下面話不多說了,來一起看看詳細(xì)的介紹吧

平時(shí)我們?cè)趯懘a的時(shí)候肯定要進(jìn)行很多參數(shù)驗(yàn)證,最開始的時(shí)候我們一般都是這樣處理的 如下圖

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

OMG?。。?有沒有感覺稍微有點(diǎn)視覺沖擊,雖然這樣寫的已經(jīng)很規(guī)整了,但是還是不夠簡(jiǎn)單和優(yōu)雅。

在SpringBoot中,我們可以直接對(duì)對(duì)象加上@vaild進(jìn)行參數(shù)校驗(yàn)

這樣寫是不是看起來優(yōu)雅了很多,沒錯(cuò)!我們就是要追求這種 小即美 的感覺?。。。。?/p>

雖然這樣看起來優(yōu)雅了很多,但是 還有點(diǎn)問題

當(dāng)我們進(jìn)行參數(shù)校驗(yàn)的時(shí)候 會(huì)看到

OMG的! 這一長(zhǎng)串又蹦出來了,在頁(yè)面上彈出來很丑,而且提示不夠明確

為什么就不能彈出來message里面的內(nèi)容呢???

顯然 是可以的,不過 這個(gè)設(shè)計(jì)注解的人想給后臺(tái)更多提示,拋出了更詳細(xì)的內(nèi)容,實(shí)在是丑了點(diǎn)。

于是為了不寫那么丑的代碼,我改造了一些網(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 "未知錯(cuò)誤";
  }
 }

 public void exceptionMessage(BindingResult bindingResult) throws SeeingException {
  if (bindingResult.hasErrors()) {
   String msg = bindingResult.getFieldError().getDefaultMessage();
   throw new SeeingException(ErrorCode.BUSINESS_EXCEPTION, msg);
  }
 }
}

通過上面簡(jiǎn)單的幾行代碼我們就可以直接拿到

另外兩個(gè)參數(shù)是公司框架里面的內(nèi)容,大家可以忽略

這時(shí)候只剩下了message里面的內(nèi)容,不過在使用的時(shí)候 需要調(diào)用下exceptionMessage方法

還是有些麻煩的,我的想法是可以自定義一個(gè)注解,把這部分代碼整合進(jìn)去,有興趣的可以去試下。

不過我們終于還是達(dá)到了目標(biāo)不是。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Servlet實(shí)現(xiàn)多文件上傳功能

    Servlet實(shí)現(xiàn)多文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了Servlet實(shí)現(xiàn)文件上傳功能,還可以實(shí)現(xiàn)Servlet多文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 解決Druid動(dòng)態(tài)數(shù)據(jù)源配置重復(fù)刷錯(cuò)誤日志的問題

    解決Druid動(dòng)態(tài)數(shù)據(jù)源配置重復(fù)刷錯(cuò)誤日志的問題

    使用druid數(shù)據(jù)庫(kù)連接池實(shí)現(xiàn)動(dòng)態(tài)的配置數(shù)據(jù)源功能,在配置過程中出現(xiàn)一個(gè)問題既然是用戶自己配置的數(shù)據(jù)源,就無法避免輸入錯(cuò)誤,連接失敗等情況,關(guān)于這個(gè)問題怎么處理呢,今天小編通過本文給大家詳細(xì)說明下,感興趣的朋友一起看看吧
    2021-05-05
  • SpringBoot中創(chuàng)建的AOP不生效的原因及解決

    SpringBoot中創(chuàng)建的AOP不生效的原因及解決

    這篇文章主要介紹了SpringBoot中創(chuàng)建的AOP不生效的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 解決Springboot全局異常處理與AOP日志處理中@AfterThrowing失效問題

    解決Springboot全局異常處理與AOP日志處理中@AfterThrowing失效問題

    這篇文章主要介紹了解決Springboot全局異常處理與AOP日志處理中@AfterThrowing失效問題,文中介紹了兩種失效場(chǎng)景,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-05-05
  • Java中的ArrayList.trimToSize()方法詳解

    Java中的ArrayList.trimToSize()方法詳解

    這篇文章主要介紹了Java中的ArrayList.trimToSize()方法詳解,前幾天看了Java?ArrayList,沒有明白trimToSize()這個(gè)方法是什么意思,所以看了一下源碼并且debug一下自己的一個(gè)例子,明白了其中的含義,需要的朋友可以參考下
    2023-11-11
  • Java兩種方法計(jì)算出階乘尾部連續(xù)0的個(gè)數(shù)

    Java兩種方法計(jì)算出階乘尾部連續(xù)0的個(gè)數(shù)

    這篇文章主要介紹了Java兩種方法計(jì)算出階乘尾部連續(xù)0的個(gè)數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • MybatisPlus 多租戶架構(gòu)(Multi-tenancy)實(shí)現(xiàn)詳解

    MybatisPlus 多租戶架構(gòu)(Multi-tenancy)實(shí)現(xiàn)詳解

    這篇文章主要介紹了MybatisPlus 多租戶架構(gòu)(Multi-tenancy)實(shí)現(xiàn)詳解,詳細(xì)的介紹了什么是多租戶架構(gòu)以及使用MybatisPlus實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • java使用RSA與AES加密解密的實(shí)例代碼詳解

    java使用RSA與AES加密解密的實(shí)例代碼詳解

    這篇文章主要介紹了java使用RSA與AES加密解密的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • play for scala 實(shí)現(xiàn)SessionFilter 過濾未登錄用戶跳轉(zhuǎn)到登錄頁(yè)面

    play for scala 實(shí)現(xiàn)SessionFilter 過濾未登錄用戶跳轉(zhuǎn)到登錄頁(yè)面

    這篇文章主要介紹了play for scala 實(shí)現(xiàn)SessionFilter 過濾未登錄用戶跳轉(zhuǎn)到登錄頁(yè)面的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Java使用HttpUtils實(shí)現(xiàn)發(fā)送HTTP請(qǐng)求

    Java使用HttpUtils實(shí)現(xiàn)發(fā)送HTTP請(qǐng)求

    這篇文章主要介紹了Java使用HttpUtils實(shí)現(xiàn)發(fā)送HTTP請(qǐng)求,HTTP請(qǐng)求,在日常開發(fā)中,還是比較常見的,今天給大家分享HttpUtils如何使用,需要的朋友可以參考下
    2023-05-05

最新評(píng)論