SpringBoot異常的設計原理

2021-10-04 02:17:28 字數 599 閱讀 8740

在日常的web開發中,常常會出現異常,如果沒有處理這些異常,web專案就會無法正常啟動執行,這個時候就需要乙個統一的異常處理機制來對客戶端的請求回饋乙個友好的提示。

預設情況下 springboot為兩種情況提供了不同的響應方式:

第一種是瀏覽器請求乙個不存在的頁面,或者服務端處理發生異常時,一般情況下瀏覽器預設傳送的請求頭中accept: text/html,所以spring boot缺省會響應乙個html文件內容,稱作「whitelabel error page」。

第二種是日常開發中,使用除錯工具請求乙個不存在的url或者服務端處理發生異常,springboot則會返回一種json字串,如下:

原理也很簡單,spring boot 預設提供了程式出錯的結果對映路徑/error。這個/error請求會在basicerrorcontroller中處理,其內部是通過判斷請求頭中的accept的內容是否為text/html來區分請求是來自客戶端瀏覽器(瀏覽器通常預設自動傳送請求頭內容accept:text/html)還是客戶端介面的呼叫,以此來決定返回頁面檢視還是 json 訊息內容。

springboot的異常處理

1 預設規則 預設情況下,spring boot提供 error處理所有錯誤的對映 對於機器客戶端,它將生成json響應,其中包含錯誤,http狀態和異常訊息的詳細資訊。對於瀏覽器客戶端,響應乙個 whitelabel 錯誤檢視,以html格式呈現相同的資料 瀏覽器預設錯誤頁面 非瀏覽器客戶端預設響...

springBoot異常處理

使得訪問 exception一定會產生異常 some exception controller public class exceptioncontroller return hello 再寫個全域性異常處理類 controlleradvice public class globalexceptio...

Spring Boot 處理異常

原理 略 1 在template下建立error目錄,在error目錄中,建立404.html頁面,如果發生錯誤 為404,就會去找這個頁面 可以建立所有的狀態碼頁面 2 在error目錄中,建立4xx.html頁,如果找不到對應的狀態碼頁面,就會去找4xx.html頁面 注意4xx.html就是4...