SpringBoot異常處理之異常顯示的頁面問題
導言
默認情況下,SpringBoot 項目錯誤頁面如下:


直接這樣太丑了,我們實際上線項目時,如果給用戶顯示這個頁面就不是很友好,用戶直接不用了。
所以當系統(tǒng)出現(xiàn)異常時應該給用戶更加友好的錯誤頁面,下面我們來看具體是如何實現(xiàn)的。
實現(xiàn)步驟
加入thymeleaf依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>在templates/下新建error文件夾

在error中新建:狀態(tài).html的頁面。例如當出現(xiàn)500時顯示的頁面為500.html,當出現(xiàn)404時顯示的頁面為404.html,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>404</title>
</head>
<body>
<h1>
404!沒有這個請求,請檢查!
</h1>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>500</title>
</head>
<body>
<h1>
500!您的代碼出現(xiàn)了內(nèi)部錯誤,請檢查!
</h1>
</body>
</html>
然后創(chuàng)建controller
@Controller
public class ErrorController {
@RequestMapping("/test")
public String testError(){
System.out.println(5/0);
// return "500";
return "500.html";
}
}
我們知道,在運行上面代碼的時候發(fā)生算術異常。錯誤碼為500。
測試如下:

使用X進行模糊匹配
- 當出現(xiàn)5開頭狀態(tài)碼的錯誤時,顯示頁面可以命名為5xx.html
- 如果500.html和5xx.html同時存在,則會精確匹配相應頁面。
我們把剛才的500.html改為5xx.html,也是可以的

因為發(fā)生了5開頭的異常,會走5xx.html,測試如下:

統(tǒng)一錯誤頁面顯示
在templates下新建error.html。如果項目中不存在具體狀態(tài)碼的頁面或沒有使用x成功匹配的頁面時,顯示error.html作為錯誤顯示頁面。
比如我們在error下沒有設置4xx相關的錯誤頁面,當發(fā)生狀態(tài)碼為4xx的錯誤時,找不到相關的錯誤處理頁面,這時會走一個統(tǒng)一的錯誤處理頁面。一般會在templates下創(chuàng)建error.html,作為統(tǒng)一的錯誤處理頁面。
在templates下創(chuàng)建error.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>error</title>
</head>
<body>
<h1>
error!??!
</h1>
</body>
</html>當發(fā)生404錯誤時,會自動走error.html

到此這篇關于SpringBoot異常處理之異常顯示的頁面問題的文章就介紹到這了,更多相關SpringBoot異常處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot下獲取resources目錄下文件的常用方法
本文詳細介紹了SpringBoot獲取resources目錄下文件的常用方法,包括使用this.getClass()方法、ClassPathResource獲取以及hutool工具類ResourceUtil獲取,感興趣的可以了解一下2024-10-10
SpringBoot定制化Starter實現(xiàn)方法
小伙伴們曾經(jīng)可能都經(jīng)歷過整天寫著CURD的業(yè)務,都沒寫過一些組件相關的東西,這篇文章記錄一下SpringBoot如何自定義一個Starter。原理和理論就不用多說了,可以在網(wǎng)上找到很多關于該方面的資料,這里主要分享如何自定義2023-01-01

