SpringBoot抛出自定义异常

SpringBoot抛出自定义异常

Scroll Down

我们知道springboot会自己抛出一些异常,比如说当我们请求一个不存在的地址时,springboot会抛出404异常。当服务器内部发生错误,springboot会抛出500异常,等等。通常使用浏览器访问的时候异常页面是这样的:

image.png image.png

1. 浏览器端抛出自定义异常页面

  • 我们在访问其他的网站比如说百度,新浪等。如果我们请求不存在的页面的时候它们的异常页面是跟我们一样吗? image.png
  • 明显可以看出官方的网站的异常页面与spring默认的异常页面不同,怎么完成这种操作呢?
    • 首先在resources文件夹下创建resources文件夹,再在resources文件夹下创建error文件夹,并且在error文件夹下创建异常页面,比如说404异常和500异常,如图 image.png
    • 我只是在异常页面输出了一段文本,当然也可以书写一些不叫好看的html页面。
    • 再当我们访问不存在的页面的时候,如图 image.png

2. 上面的抛出异常其实还是springboot自己抛出的异常,要是我想在服务器内部抛出自己的异常并且附带异常信息呢,比如说用户密码为空,我抛出异常告诉前端密码为空。

  • 我们使用第三方插件可以看到springboot抛出异常的具体信息 image.png
  • 实现自定义异常并抛出
    • 在项目的目录下创建异常包,并编写一个自定义异常类UserNotExistException,这里这个类必须要去继承Java自己的异常类RuntimeException,如图 image.png
    • 异常类代码 image.png
    • 在controller层定义异常执行类 image.png
  • 这样在我们的代码中就可以抛出我们自己定义的异常了 image.png
  • 我们来看一下这个时候系统抛出的异常信息 image.png