問題:
當我們不對異常進行處理的時候,伺服器端的異常就會原封不動的給返回前端頁面,這是沒有意義的行為,而且對使用者也不夠友好
就算我們自定義了返回的結果資訊,也只是包含了正確與錯誤的資訊,並沒有具體的資訊,在頁面顯示確實也不大友好
解決思路:
異常是不可以避免的,分為兩種,一種是我們可以預知的異常.我們可以針對這種來自定義異常,並處理
一種是不可以預知的異常,比如系統執行時候由於不可抗因素產生的的異常
1. 對可以預知的異常(比如空指標,物件已經存在...)進行自定義異常類,並在可能發生異常的地方丟擲異常
2. 由於springmvc的機制,我們可以在表現層捕捉到業務層以及持久層的異常資訊,所以,我們可以使用springmvc控制增強
對異常進行統一的異常處理
3. 在統一的異常處理中,分別對自定義的異常以及不可預知的異常進行處理
示例:自定義異常類:customexception(用來丟擲可預知的異常)
/** * 自定義異常類
* created by levi on 2018/12/1.
*/public class customexception extends runtimeexception
public resultcode getresultcode()
}自定義異常丟擲類:exceptioncast
也可以不定義,直接丟擲,這裡只是抽取出來
/** * 異常丟擲類
* created by levi on 2018/12/1.
*/public class exceptioncast
}使用springmvc控制增強統一捕獲處理異常:
/** * 定義乙個異常捕獲類
* created by levi on 2018/12/1.
*///springmvc控制增強註解,即異常通知註解
@controlleradvice
public class exceptioncatch \r\nexception: ",e.getmessage(), e);
//健壯性判斷並初始化exceptions
if (exceptions == null)
//根據位元組碼查詢錯誤**
final resultcode resultcode = exceptions.get(e.getclass());
final responseresult responseresult;
if (resultcode != null)else
return responseresult;
}//捕獲自定義異常customexception
springboot專案中的異常處理
1.首先自定義異常類繼承runtimeexception類,以notfoundexception為例 使用messageformat.format 方法做資訊和可變參的處理。public class notfoundexception extends runtimeexception 2.定義全域性...
SpringBoot專案中全域性異常處理
1 引數不滿足條件異常類定義 description 引數不滿足異常處理 author date 2019年8月10日 上午14 17 56 public class promptexception extends runtimeexception public void setcode int c...
Springboot專案中統一異常處理
自定義異常類 data lombok,包含get set 方法 allargsconstructor 有參構造 noargsconstructor 無參構造 public class scofieldexecption extends runtimeexception 異常處理handler類 co...