亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

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

平時我們在寫代碼的時候肯定要進行很多參數(shù)驗證,最開始的時候我們一般都是這樣處理的 如下圖

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

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

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

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

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

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

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

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

顯然 是可以的,不過 這個設(shè)計注解的人想給后臺更多提示,拋出了更詳細的內(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方法

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

不過我們終于還是達到了目標不是。

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    java使用RSA與AES加密解密的實例代碼詳解

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

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

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

    Java使用HttpUtils實現(xiàn)發(fā)送HTTP請求

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

最新評論