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 上面是原理性 在我們...