最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring @ExceptionHandler注解統(tǒng)一異常處理和獲取方法名

 更新時間:2023年09月25日 09:03:22   作者:樓蘭胡楊  
這篇文章主要介紹了Spring注解之@ExceptionHandler 統(tǒng)一異常處理和獲取方法名,在實際項目中,合理使用@ExceptionHandler能夠提高代碼的可維護(hù)性和用戶體驗,通過本文的解析和實踐,讀者可以更好地理解和掌握@ExceptionHandler的用法和原理

摘要:

在 Spring Boot 中,使用Spring注解@ControllerAdvice 和 @ExceptionHandler 統(tǒng)一處理異常,并捕獲方法名,從而快速定位錯誤原因。

背景分析

  最近走查線上環(huán)境日志時,發(fā)現(xiàn)打印了很多org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported異常日志,雖然知道是因為接口不支持GET請求導(dǎo)致的,但是,定位不到是因為錯誤調(diào)用哪個接口導(dǎo)致,給人很大困惑。

@ExceptionHandler介紹

  異常處理器@ExceptionHandler是Spring MVC框架中用于處理異常的注解,方法名按需自定義,方法參數(shù)可以是Exception及其子類對象、HttpServletRequest、HttpServletResponse等,系統(tǒng)會自動為它們賦值。方法返回值類型可以為ModelAndView、Model、Map、View、String以及void等。它的作用是把各個Controller中拋出的異常集中到一個類中處理。

  在被@ControllerAdvice或者@RestControllerAdvice修飾的類里,可以使用@ExceptionHandler捕捉異常,返回值類型為Map的示例如下:

@Slf4j
@RestControllerAdvice
public class GlobalExceptionAdvice {
	/*
   * 捕捉HTTP請求方式異常HttpRequestMethodNotSupportedException
   */
   @ExceptionHandler(HttpRequestMethodNotSupportedException.class)
   public Map<String, Object> handleBadMethodException(HttpRequestMethodNotSupportedException exception, HttpServletRequest req) {
       log.error("不支持的請求方式:{}-{}", req.getRequestURI(), exception.getMessage());
       Map<String, Object> result=new HashMap();
       result.put("msg","不支持的請求方式");
       result.put("code", HttpStatus.METHOD_NOT_ALLOWED.value());
       return result;
   }
}

  @RestControllerAdvice:放在類的上面,表示這個類中有異常處理器,它是基于AOP的、對控制器類的一個增強。

  req.getRequestURI()用于獲取當(dāng)前API訪問路徑的URI,里面包含方法名,用于快速定位是哪個API出錯。

  在上述異常處理器示例中,當(dāng)控制層拋出HttpRequestMethodNotSupportedException異常時,handleBadMethodException方法會被調(diào)用,返回一個包含錯誤信息的Map對象。如果把@ExceptionHandler(HttpRequestMethodNotSupportedException.class)改為@ExceptionHandler(Exception.class),則是處理全局異常了,會捕獲所有未被其它方法處理的異常,這樣處理的缺點是異常太過寬泛,不利于排查問題。

  驗證功能的方法很簡單,請使用GET請求訪問僅支持POST請求的函數(shù),此時,控制臺將打印如下信息:

不支持的請求方式:/wiener/XXXMethod-Request method 'GET' not supported

結(jié)束語

  Spring MVC的@ExceptionHandler注解為Web應(yīng)用程序提供了便捷的異常處理機制。通過使用該注解,可以在控制器中捕獲和處理特定類型的異常,提供友好的錯誤信息給用戶。在實際項目中,合理使用@ExceptionHandler能夠提高代碼的可維護(hù)性和用戶體驗。通過本文的解析和實踐,讀者可以更好地理解和掌握@ExceptionHandler的用法和原理。

到此這篇關(guān)于Spring注解之@ExceptionHandler 統(tǒng)一異常處理和獲取方法名的文章就介紹到這了,更多相關(guān)Spring @ExceptionHandler 統(tǒng)一異常處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot訪問不存在的URL時的處理方法

    springboot訪問不存在的URL時的處理方法

    在前后端分離的模式下,當(dāng)Spring Boot應(yīng)用接收到一個不存在的URL請求時,通常希望返回一個固定的JSON字符串作為響應(yīng),以便前端能夠據(jù)此進(jìn)行相應(yīng)的處理,本文給大家介紹了springboot訪問不存在的URL時的處理方法,需要的朋友可以參考下
    2024-12-12
  • Java的內(nèi)部類總結(jié)

    Java的內(nèi)部類總結(jié)

    這篇文章主要為大家介紹了Java的內(nèi)部類,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • springboot實現(xiàn)excel表格導(dǎo)出幾種常見方法

    springboot實現(xiàn)excel表格導(dǎo)出幾種常見方法

    在日常的開發(fā)中避免不了操作Excel,下面這篇文章主要給大家介紹了關(guān)于springboot實現(xiàn)excel表格導(dǎo)出的幾種常見方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Mybatis模糊查詢之三種定義參數(shù)方法和聚合查詢、主鍵回填實現(xiàn)方法

    Mybatis模糊查詢之三種定義參數(shù)方法和聚合查詢、主鍵回填實現(xiàn)方法

    這篇文章主要介紹了Mybatis模糊查詢之三種定義參數(shù)方法和聚合查詢、主鍵回填實現(xiàn)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Mybatis分頁的4種方式實例

    Mybatis分頁的4種方式實例

    這篇文章主要介紹了Mybatis分頁的4種方式實例,包括數(shù)組分頁,sql分頁,攔截器分頁,RowBounds分頁,需要的朋友可以參考下
    2022-04-04
  • Java String字符串的常用使用方法

    Java String字符串的常用使用方法

    String是JDK提供的一個類,是引用類型,并不是基本的數(shù)據(jù)類型,String用于字符串操作,在之前學(xué)習(xí)c語言的時候,對于一些字符串,會初始化字符數(shù)組表示,本文給大家介紹Java String字符串的常用使用方法,感興趣的朋友一起看看吧
    2025-04-04
  • java中的forkjoin框架的使用

    java中的forkjoin框架的使用

    這篇文章主要介紹了java中的fork join框架的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Spring中@Async注解實現(xiàn)異步調(diào)詳解

    Spring中@Async注解實現(xiàn)異步調(diào)詳解

    在本篇文章里小編給大家分享的是關(guān)于Spring中@Async注解實現(xiàn)異步調(diào)詳解內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-04-04
  • spring boot admin 搭建詳解

    spring boot admin 搭建詳解

    本篇文章主要介紹了spring boot admin 搭建詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • java如何根據(jù)提供word模板導(dǎo)出word文檔詳解

    java如何根據(jù)提供word模板導(dǎo)出word文檔詳解

    在日常的開發(fā)工作中,我們時常會遇到導(dǎo)出Word文檔報表的需求,比如公司的財務(wù)報表、醫(yī)院的患者統(tǒng)計報表、電商平臺的銷售報表等等,這篇文章主要給大家介紹了關(guān)于java如何根據(jù)提供word模板導(dǎo)出word文檔的相關(guān)資料,需要的朋友可以參考下
    2023-09-09

最新評論

宁乡县| 武清区| 喀喇| 玉山县| 海兴县| 景德镇市| 通河县| 舟曲县| 锡林浩特市| 通州区| 安远县| 札达县| 三都| 宁武县| 文安县| 长阳| 西丰县| 瑞金市| 淮北市| 保靖县| 高尔夫| 原平市| 保德县| 澄迈县| 祁东县| 宜阳县| 韶关市| 封开县| 忻城县| 南涧| 射洪县| 项城市| 马鞍山市| 嘉善县| 嵊州市| 莎车县| 郯城县| 吉木萨尔县| 南雄市| 土默特左旗| 平昌县|