不多說廢話,直接進入主菜??!
步驟:
1.搭建SpringBoot的開發環境,略(有不會的可以私信我)。
2.編寫一個自定義異常,自定義異常需要繼承RuntimeException。寫一個構造函數,并調用父類保存異常信息。
public class MyException extends RuntimeException {
public MyException(String massage) {
super(massage);
}
}
3.編寫一個控制器,用于拋出異常。當請求參數param=aa時拋出異常,否則不拋出異常。
@Controller
public class MyController {
@ResponseBody
@RequestMapping("/exception")
public String ee(String param){
if(param.equals("aa")){
throw new MyException("拋出自定義異常");
}
return "沒有拋出異常";
}
}
當控制器拋出自定義異常時,這是服務器會發生狀態碼為500的錯誤。springboot自帶的異常界面不是很友好,我們可以定制一個異常界面用于顯示異常信息,看下一步驟。
4.定制自定義異常處理界面。springboot自動配置了視圖解析器,我們可以編寫一個500.html放在classpath:tempaltes/error目錄下。
500.html代碼如下(用的是thymeleaf渲染):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
status: [[${status}]] <br>
timestamp: [[${timestamp}]] <br>
message: [[${message}]] <br>
exception: [[${exception}]] <br>
</body>
</html>
代碼已經編寫完畢,來看看效果吧!
當我們訪問 http://localhost/exception?param=aa時拋出異常,結果如下:

訪問 http://localhost/exception?param=bb,不會拋出異常,結果如下:

** 舉一反三:在用戶管理系統中,我們可以自定義用戶不存在異常類,當查詢某個不存在的用戶時,讓控制器拋出用戶不存在異常,并跳轉到一個友好的提示界面。
搶票系統,當用戶購買的票已經賣完,我們可以拋出一個自定義的票已經沒有的異常,并跳轉到一個友好的提示界面。 **
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。