springboot中自定義異常以及定制異常界面實(shí)現(xiàn)過程解析
不多說廢話,直接進(jìn)入主菜??!
步驟:
1.搭建SpringBoot的開發(fā)環(huán)境,略(有不會(huì)的可以私信我)。
2.編寫一個(gè)自定義異常,自定義異常需要繼承RuntimeException。寫一個(gè)構(gòu)造函數(shù),并調(diào)用父類保存異常信息。
public class MyException extends RuntimeException {
public MyException(String massage) {
super(massage);
}
}
3.編寫一個(gè)控制器,用于拋出異常。當(dāng)請(qǐng)求參數(shù)param=aa時(shí)拋出異常,否則不拋出異常。
@Controller
public class MyController {
@ResponseBody
@RequestMapping("/exception")
public String ee(String param){
if(param.equals("aa")){
throw new MyException("拋出自定義異常");
}
return "沒有拋出異常";
}
}
當(dāng)控制器拋出自定義異常時(shí),這是服務(wù)器會(huì)發(fā)生狀態(tài)碼為500的錯(cuò)誤。springboot自帶的異常界面不是很友好,我們可以定制一個(gè)異常界面用于顯示異常信息,看下一步驟。
4.定制自定義異常處理界面。springboot自動(dòng)配置了視圖解析器,我們可以編寫一個(gè)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>
代碼已經(jīng)編寫完畢,來看看效果吧!
當(dāng)我們?cè)L問 http://localhost/exception?param=aa時(shí)拋出異常,結(jié)果如下:

訪問 http://localhost/exception?param=bb,不會(huì)拋出異常,結(jié)果如下:

** 舉一反三:在用戶管理系統(tǒng)中,我們可以自定義用戶不存在異常類,當(dāng)查詢某個(gè)不存在的用戶時(shí),讓控制器拋出用戶不存在異常,并跳轉(zhuǎn)到一個(gè)友好的提示界面。
搶票系統(tǒng),當(dāng)用戶購買的票已經(jīng)賣完,我們可以拋出一個(gè)自定義的票已經(jīng)沒有的異常,并跳轉(zhuǎn)到一個(gè)友好的提示界面。 **
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringMVC請(qǐng)求數(shù)據(jù)詳解講解
Spring MVC 是 Spring 提供的一個(gè)基于 MVC 設(shè)計(jì)模式的輕量級(jí) Web 開發(fā)框架,本質(zhì)上相當(dāng)于 Servlet,Spring MVC 角色劃分清晰,分工明細(xì),本章來講解SpringMVC如何請(qǐng)求數(shù)據(jù)2022-07-07
一文了解Java Log框架徹底搞懂Log4J,Log4J2,LogBack,SLF4J
本文主要介紹了一文了解Java Log框架徹底搞懂Log4J,Log4J2,LogBack,SLF4J,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Java實(shí)現(xiàn)冒泡排序算法及對(duì)其的簡(jiǎn)單優(yōu)化示例
這篇文章主要介紹了Java實(shí)現(xiàn)冒泡排序算法及對(duì)其的簡(jiǎn)單優(yōu)化示例,冒泡排序的最差時(shí)間復(fù)雜度為O(n^2),最優(yōu)時(shí)間復(fù)雜度為O(n),存在優(yōu)化的余地,需要的朋友可以參考下2016-05-05
Java使用觀察者模式實(shí)現(xiàn)氣象局高溫預(yù)警功能示例
這篇文章主要介紹了Java使用觀察者模式實(shí)現(xiàn)氣象局高溫預(yù)警功能,結(jié)合完整實(shí)例形式分析了java觀察者模式實(shí)現(xiàn)氣象局高溫預(yù)警的相關(guān)接口定義、使用、功能操作技巧,并總結(jié)了其設(shè)計(jì)原則與適用場(chǎng)合,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2018-04-04
Spring Boot + Kotlin整合MyBatis的方法教程
前幾天由于工作需要,便開始學(xué)習(xí)了kotlin,java基礎(chǔ)扎實(shí)學(xué)起來也還算比較快,對(duì)于kotlin這個(gè)編程語言自然是比java有趣一些,下面這篇文章主要給大家介紹了關(guān)于Spring Boot + Kotlin整合MyBatis的方法教程,需要的朋友可以參考下。2018-01-01
Java并發(fā)編程之ReadWriteLock讀寫鎖的操作方法
這篇文章主要介紹了Java并發(fā)編程之ReadWriteLock讀寫鎖的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02

