springboot中自定義異常以及定製異常界面

很少說廢話,直接進入主菜!!

步驟:html

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自帶的異常界面不是很友好,咱們能夠定製一個異常界面用於顯示異常信息,看下一步驟。java

4.定製自定義異常處理界面。springboot自動配置了視圖解析器,咱們能夠編寫一個500.html放在classpath:tempaltes/error目錄下。

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


** 觸類旁通:在用戶管理系統中,咱們能夠自定義用戶不存在異常類,當查詢某個不存在的用戶時,讓控制器拋出用戶不存在異常,並跳轉到一個友好的提示界面。 ** ** 搶票系統,當用戶購買的票已經賣完,咱們能夠拋出一個自定義的票已經沒有的異常,並跳轉到一個友好的提示界面。 **服務器

相關文章
相關標籤/搜索