日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot 错误页面和异常处理

發布時間:2024/3/24 javascript 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot 错误页面和异常处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一,錯誤頁面

如圖所有,這兩種錯誤提示在springboot開發的應有程序中都很常見,第一種是html請求,第二種是json格式的請求。

在SpringBoot中,默認錯誤請求控制器是BasicErrorController。

@RequestMapping注解的意思是,如果配置文件沒有配置server.error.path,則默認使用error

這里主要看我圈出來的這兩個方法,第一個方法是處理html請求的錯誤,第二種是處理json格式請求的錯誤。

了解完基礎知識之后,就可以開始準備我們專屬的錯誤頁面的。

從SpringBoot官方文檔里邊可以知道,默認的錯誤頁面是在templates下的一個erroe.html文件,如果我們替換掉默認的,只需要再這個目錄下新建一個error.html即可。

測試代碼:

可以看到,我們新創的error.html已經替換掉springboot默認的錯誤頁面了。除了這種全部錯誤都用一個頁面來展示的方法,我們也可以用錯誤碼來區分錯誤,讓不同的錯誤跳轉到不同的HTML。

測試代碼:

其他的錯誤碼頁面也是類似,要注意,文件的目錄是放在templates/error/xxx.html ,同時,我們也可以看出來,錯誤頁面的響應也是有優先級的,具體的請看總結。

?

接下來,是動態的錯誤頁面。一般頁面上都需要把錯誤信息給打印出來。

注意,這里配置文件要改動一下,不然頁面上是獲取不到錯誤信息的。

?

小總結:基本上,springboot錯誤頁面的配置已經講解完了,各種錯誤頁面的優先級是 : 動態 > 靜態 > error.html

?

?

二,統一異常處理

這里主要涉及到2個注解:@ExceptionHandler和@ControllerAdvice

@ExceptionHandler注解,此注解注解到類的方法上,當此注解里定義的異常拋出時,此方法會被執行。

如果@ExceptionHandler所在的類是@Controller,則此方法只作用在此類。

如果@ExceptionHandler所在的類帶有@ControllerAdvice注解,則此方法會作用在全局。

?

也就是說,局部的異常處理 =? @Controller/@RestController +?@ExceptionHandler,全局的異常處理 =?@ControllerAdvice +?@ExceptionHandler

局部異常處理? 測試代碼:

可以看到,兩個不同的controller,同樣的異常,不同的錯誤輸出。

?

全局異常處理-代碼測試:

?

可以看到,兩個controller都可以對同一個異常做出同樣的處理。

?

?

三,總結

介紹了springboot默認處理錯誤頁面的幾種方法和介紹了怎么做一個異常統一處理。在項目里,配置了異常統一處理之后,不管哪里拋出的異常,我們只需在統一處理的方法上修改我們的邏輯即可,減輕我們開發和維護的難度,畢竟方法多了之后異常零散分散在不同的方法里,不好管理。

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的SpringBoot 错误页面和异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。