步驟:html
public class MyException extends RuntimeException { public MyException(String massage) { super(massage); } }
@Controller public class MyController { @ResponseBody @RequestMapping("/exception") public String ee(String param){ if(param.equals("aa")){ throw new MyException("拋出自定義異常"); } return "沒有拋出異常"; } }
當控制器拋出自定義異常時,這是服務器會發生狀態碼爲500的錯誤。springboot自帶的異常界面不是很友好,咱們能夠定製一個異常界面用於顯示異常信息,看下一步驟。java
500.html代碼以下(用的是thymeleaf渲染):spring
<!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,不會拋出異常,結果以下: springboot
** 觸類旁通:在用戶管理系統中,咱們能夠自定義用戶不存在異常類,當查詢某個不存在的用戶時,讓控制器拋出用戶不存在異常,並跳轉到一個友好的提示界面。 ** ** 搶票系統,當用戶購買的票已經賣完,咱們能夠拋出一個自定義的票已經沒有的異常,並跳轉到一個友好的提示界面。 **服務器