SpringMVC 異常處理機制與自定義異常處理

2021-07-22 02:22:24 字數 3108 閱讀 4918

本節介紹springmvc的異常處理機制

首先介紹springmvc預設提供了一些http錯誤類似碼的預設異常處理

如何給乙個controller自定義異常處理

如何為專案做乙個全域性異常處理

提到異常處理,就不得不提handlerexceptionresolvers,我們的dispatcherservlet預設設定三個異常處理器:

springmvc預設處理的幾種異常

首先介紹的是註解@responsestatus

@responsestatus

/**

*使用@responsestatus只能實現簡單的提示

*當程式中丟擲httpstatecode404exception會使用提示語:頁面未找到

*/@responsestatus(code=httpstatus.not_found,reason="頁面未找到")

然後我們在乙個controller類處理/handleexception/存在在的對映路徑時的處理方法

@controller

public

class

handleexceptioncontroller )

public string handlethiscontroller()*/

public

void

handle404()

}

細心的讀者,一定會發現,我在上面注掉的**使用了@exceptionhandler註解

最終我們可以得到錯誤頁面提示是這樣的:好醜,但是有我們的reason

此方式只能實現簡單的資訊提示。

再來看看@exceptionhandler

開啟上面被注釋掉的**,你會發現我們的錯誤控制可以**發)跳轉頁面了。

而且由於我們的這個方法定義在這個controller類中,只要滿足此@exceptionhandler定義的異常都會走這個方法。

注意:是這個controller類中所有請求出現異常,且異常被其包含

我希望定義乙個全域性異常處理呢???@controlleradvice

為我們實現處理所以的控制器controllers的異常

具體實現

/**

* 定義乙個處理所有controllers的exceptionhandler

*/@controlleradvice

public

class

globalexceptionadvice )

public string handlethiscontroller()

/*處理其他異常...*/

}

異常處理的順序:

1.controller處理時丟擲異常

2.本controller類中的@exceptionhandler如果捕獲到,就執行其處理方法

3.否則,由全域性異常捕獲處理

4.否則,由@responsestatus註解的異常捕獲處理

5.最後defaulthandlerexceptionresolver處理

這恰恰也就是dispatcherservlet異常處理器的配置順序(循序呼叫,list)

異常處理機制

異常處理的三個步驟 檢查異常,丟擲異常,處理異常 異常處理基本原理 把需要檢測的程式放到try塊中,把異常處理的程式放在catch塊中。如果執行乙個函式出現了異常,可以丟擲異常資訊。然後查詢try塊下面的catch塊是否可以處理該異常。如果該函式不處理該異常,將傳遞給它的上一級函式 呼叫函式 如果它...

異常處理機制

1 c 中異常處理機制使得異常的引發和異常的處理不必在同乙個函式中。2 異常是專門針對抽象程式設計中的一系列錯誤處理的,c 的函式機制是棧結構,先進後出,依次訪問,無法跳躍。3 異常超脫於函式機制,決定了其對函式的跨越式回跳。4 異常跨越函式 普通用法 基本用法 void add int a,int...

異常處理機制

異常處理機制分為以下2點 異常處理五個關鍵字 try catch finally throw throws 用了try catch程式出現異常不會終止,會丟擲異常繼續執行下面任務 public static void main string args catch error e catch exce...