springboot中自定义异常以及定制异常界面实现过程解析
作者:shun-w 发布时间:2023-05-13 09:14:00
标签:spring,boot,自定义,异常,界面
不多说废话,直接进入主菜!!
步骤:
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


猜你喜欢
- 一、访问或添加request/session/application属性public String scope() throws Excep
- 本文为大家分析了Java中字符流与字节流的区别,供大家参考,具体内容如下1. 什么是流 Java中的流是
- 原文是 java ,现在将它翻译成 C# ,并对代码重新编排整理,博主是一个今年刚出来的应届毕业生,不足之处请多多包涵。根据银行卡号判断所属
- 本文实例讲述了C#编程实现QQ界面的方法。分享给大家供大家参考,具体如下:步骤:1.新建一个页面,假如说叫VerticalMenu2.把ht
- 理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣。Proxy是比较有用途的一种模式
- 不过在实际的工作中,很少会直接用到它。通常都是用的spring-quartz组件,直接通过配置,让spring框架来自动装配如下就是spri
- 想用java做一个像windows里一样的txt编辑软件,涉及到字体设置选项卡,在网上找了很久都没找到,就生气啦自己写一个,现在贴这里分享一
- 本文实例为大家分享了C#截取验证码图片的具体代码,供大家参考,具体内容如下使用Graphics类中的DrawImage方法,这个方法有30种
- 基于 springboot+vue的测试平台开发一、前端环境搭建在前端框架vue-element-admin这个项目中,有一个简洁轻量型的项
- 切面编程听起来可能有点陌生,不过现在越来越多的开发团队正在用上这种技术。先说熟悉的面向对象编程 OOP,通常都是用各种对象/模块来负责具体的
- Android 中 Tweened animation的实例详解Tweened animation有四种类型,下面主要介绍Scale类型。运
- 一:对象,JavaBean,SpringBean的区别1.什么是JavaBeanjavaBean要求所有属性为私有,该类必须有一个公共无参构
- 本文实例为大家分享了Android九宫格展示的具体代码,供大家参考,具体内容如下(设置的有最少连几个和最大连几个)MainActivityp
- 我们知道HashMap集合是允许存放null值的hashMap是根据key的hashCode来寻找存放位置的,那当key为null时, 怎么
- 1. JVM 运行时数据区JVM运行时数据区可以分为元空间,堆,虚拟机栈,本地方法栈,程序计数器五大块。元空间(方法区):存放类模版对象,是
- 1.控制屏幕常亮首先导入模块import brightness from '@system.brightness';接下来在
- 前言本文主要讲述如何在同一个窗体内,实现不同功能模块的页面切换。一、准备工作1.搭建一个简单的mvvm项目结构首先搭建一个简单的项目框架,然
- 为大家提供的MySQL忘记密码的解决方案,供大家参考,具体内容如下1.在操作系统windows操作系统,xp或win7.中进入如下目录:C:
- 说明一下性能方面 还可以接受 循环1000次普通Switch是用了0.001秒 ,扩展函数为0.002秒 , 如果是大项目在有负
- Android日期选择控件效果如下:调用的代码:@OnClick(R.id.btn0) public void btn0() { final