SpringBoot 錯誤資訊攔截

2021-10-08 00:17:42 字數 2049 閱讀 6884

springboot 預設的處理異常的機制:

springboot 預設的已經提供了一套處理異常的機制。 一旦程式**現了異常 springboot 會向 /error 的 url 傳送請求。在 springboot 中提供了乙個叫basicexceptioncontroller 來處理 /error 請求,然後跳轉到預設顯示異常的頁面來展示異常資訊。

自定義錯誤頁面

在thymleaf模板引擎下,我們可以在template目錄下建立乙個error包存放錯誤頁面,如404,500,error等html,springboot會根據狀態碼跳轉到相應頁面。

控制器處理異常

在handler包下新建異常控制器類:

@controlleradvice

public

class

controllerexceptionhandler

,exception : {}"

, request.

getrequesturl()

,e);

// 當標識了狀態碼的時候就不攔截

if(annotationutils.

findannotation

(e.getclass()

, responsestatus.

class

)!= null)

modelandview mv =

newmodelandview()

; mv.

addobject

("url"

,request.

getrequesturl()

);mv.

addobject

("exception"

, e)

; mv.

setviewname

("error/error");

return mv;

}}

@controlleradvice註解:攔截所有帶有controller註解的控制器

@exceptionhandler(exception.class)註解:該方法可以做異常處理

controllerexceptionhandler會在controllers前面統一攔截所有exception,記錄日誌並跳轉到錯誤頁面。

自定義notfoundexception

}@responsestatus註解:返回http狀態碼,這裡值為httpstatus.not_found異常狀態碼

springboot拿到異常狀態碼之後會找到對應狀態碼的404頁面,這裡要注意做一下邏輯判斷,如果狀態碼不為空,異常控制器不進行攔截

在error.html錯誤頁面使用thymleaf提供的錯誤資訊模板,在返回錯誤頁面後方便通過檢視網頁源**找打錯誤資訊。

>

th:utext="

'

MySQL錯誤資訊

mysql的出錯 表,根據mysql的標頭檔案mysql include mysqld error.h整理而成。錯誤之處,請大家指正。1005 建立表失敗 1006 建立資料庫失敗 1007 資料庫已存在,建立資料庫失敗 1008 資料庫不存在,刪除資料庫失敗 1009 不能刪除資料庫檔案導致刪除資...

反饋錯誤資訊

即當出現錯誤 時,自動彈出我們預先設計好的反饋視窗,目的是使用者只需簡 單地按一下滑鼠就可以把反饋資訊發到你指定的信箱,當然反饋視窗的內容我們 可以任意修改設計。如下 script function errorinfo errorwin window.open width 20,height 120...

錯誤資訊介面

三 錯誤資訊介面 既然 com 是靠各種各樣的介面來提供服務的,於是很自然地就會想到,是否有乙個介面能夠提供更豐富的錯誤資訊報告那?答案是 isupporterrorinfo。下面這段 是使用 isupporterrorinfo 的一般方法 stdmethodimp c fun 上面是原理性 在我們...