版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33248299/article/details/89636297
一.导学
- Spring boot中默认的错误处理机制
- 自定义异常处理
二.spring boot中默认的错误处理机制
- 访问一个不存在的url
http://localhost:8070/xxx
- 浏览器的默认错误如下图所示
- 浏览器的处理(我们先访问正常页面)
http://localhost:8070/user/1
-
获取用户信息的请求,返回的是json格式的用户信息
-
我们再访问不存在的url 看看浏览器是怎么处理的
总结:浏览器发的时候响应是一段html,客户端发的时候是一段json。Spring boot默认处理机制,它会判断当前请求是浏览器发的还是客户端发送的,根据不同请求有不同的处理 -
我们来看看源码是怎么操作的
-
在BasicErrorController 这个类(Spring boot内部错误处理的控制器)
- 有两个RequstMapping
- 区别在于请求头中有没有text/html参数
- ResponseBody注解 把map转换成json
- 浏览器请求头第一个就是text/html
- 而客户端并不含有text/html
- restfull api 是通过http状态码返回不同的场景,所以这里status是404.而且请求响应状态也是404,自己在设计的时候可以参考这个思想
- 还有一个提示信息 “No message available” 404 状态就是没有找到可处理的路径,没有可用的信息也符合解释
- 但是在实际开发中,只是凭借http状态码的话,是不能解决实际场景中的需求的
- 比如创建用户信息,缺少字段,需要返回哪一个字段缺少
三.自定义错误处理
- 自定义浏览器错误处理
待写中…