springboot中自定义异常以及定制异常界面实现过程解析
作者:shun-w 时间:2023-05-13 09:14:00
不多说废话,直接进入主菜!!
步骤:
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,不会抛出异常,结果如下:
** 举一反三:在用户管理系统中,我们可以自定义用户不存在异常类,当查询某个不存在的用户时,让控制器抛出用户不存在异常,并跳转到一个友好的提示界面。
抢票系统,当用户购买的票已经卖完,我们可以抛出一个自定义的票已经没有的异常,并跳转到一个友好的提示界面。 **
来源:https://www.cnblogs.com/shun-w/p/11589622.html
标签:spring,boot,自定义,异常,界面
0
投稿
猜你喜欢
使用SpringMVC响应json格式返回的结果类型
2022-06-29 20:29:46
Java中ArrayList初始化的四种方法详解
2022-03-29 21:50:13
IDEA自定义pom依赖的步骤详解
2021-11-06 04:14:32
Android自定义View实现水面上涨效果
2023-03-02 22:13:06
java8 利用reduce实现将列表中的多个元素的属性求和并返回操作
2021-09-29 06:53:38
java开发实现五子棋游戏
2021-09-07 12:41:32
Android RecyclerView使用GridLayoutManager间距设置的方法
2023-03-20 07:32:44
SpringBoot+SpringCloud用户信息微服务传递实现解析
2022-12-08 13:51:42
浅谈C# 抽象类与开闭原则
2023-11-07 11:00:08
SpringRetry重试框架的具体使用
2022-09-21 00:37:35
Android Walker登录记住密码页面功能实现
2023-12-16 05:45:03
C#中char和string的入门使用教程
2022-06-14 15:07:17
Springboot导出文件,前端下载文件方式
2023-07-21 11:27:05
C#获取USB事件API实例分析
2021-09-01 13:55:07
微信第三方登录Android实现代码
2023-07-27 08:05:49
详解Java8如何使用Lambda表达式进行比较
2023-12-09 19:27:16
浅谈Java中ArrayList线程不安全怎么办
2023-10-02 19:24:56
介绍java中Pair(配对)
2021-09-03 10:15:39
21天学习android开发教程之SurfaceView
2023-04-17 17:01:56
浅谈c#.net中巧用ToString()将日期转成想要的格式
2022-02-02 18:14:07