<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Spring注解之@ExceptionHandler 統一異常處理和獲取方法名

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

      背景分析

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

      @ExceptionHandler介紹

      ??異常處理器@ExceptionHandler是Spring MVC框架中用于處理異常的注解,方法名按需自定義,方法參數可以是Exception及其子類對象、HttpServletRequest、HttpServletResponse等,系統會自動為它們賦值。方法返回值類型可以為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()用于獲取當前API訪問路徑的URI,里面包含方法名,用于快速定位是哪個API出錯。

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

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

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

      結束語

      ??Spring MVC的@ExceptionHandler注解為Web應用程序提供了便捷的異常處理機制。通過使用該注解,可以在控制器中捕獲和處理特定類型的異常,提供友好的錯誤信息給用戶。在實際項目中,合理使用@ExceptionHandler能夠提高代碼的可維護性和用戶體驗。通過本文的解析和實踐,讀者可以更好地理解和掌握@ExceptionHandler的用法和原理。希望這篇文章對您有所幫助,感謝閱讀!

      posted @ 2023-09-25 07:16  樓蘭胡楊  閱讀(1523)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久草热在线视频免费播放| 亚洲色成人一区二区三区| 日本乱一区二区三区在线| 亚洲成av人片一区二区| 国产精品欧美福利久久| 最近中文字幕免费手机版| 国产JJIZZ女人多水喷水| 国产精品中文第一字幕 | 成年女人永久免费观看视频| 中国女人高潮hd| 人妻av中文字幕无码专区| 日韩精品久久久肉伦网站| 日韩精品一卡二卡在线观看 | 九九热在线视频免费观看| 久久人人爽人人爽人人av| 日韩国产精品中文字幕| 国产精品久久久久aaaa| 天天做日日做天天添天天欢公交车 | 在线观看美女网站大全免费| 久久69国产精品久久69软件| 999精品全免费观看视频| 亚洲精品中文av在线| 国精品无码一区二区三区在线看 | 实拍女处破www免费看| 中文字幕亚洲综合久久| 丰满爆乳一区二区三区| 日韩有码国产精品一区| 久久人人97超碰国产精品| 2021国产在线视频| 国产在线乱子伦一区二区| 无码激情亚洲一区| 国产日韩av一区二区在线| 日韩成人一区二区三区在线观看| 欧美粗大| 高清破外女出血AV毛片| 中文字幕国产精品专区| 一区二区三区四区亚洲综合 | 国产精品久久自在自线不卡| 下面一进一出好爽视频| 成人中文在线| 欧美人与动牲交A免费观看|