成都网站建设设计

将想法与焦点和您一起共享

Springboot异常错误处理解决方案详解-创新互联

1.在有模板引擎的情况下:

目前创新互联已为千余家的企业提供了网站建设、域名、网站空间网站托管运营、企业网站设计、汝阳网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

springboot会默认找 templates/error/错误状态码.html,所以我们要定制化错误页面就可以到templates/error下创建一个【对应错误状态码.html】html文件,当发生此状态码的错误springboot就会来到对应的页面。

同时如果我们想让400-499之间的错误都去同一个错误页面,那我们可以在templates/error下创建一个4xx.html。同理500-599的错误可以用5xx.html。

Springboot异常错误处理解决方案详解

注意:springboot会优先匹配具体的【错误状态码.html】,然后再匹配4xx,5xx的。例如:发生了404错误,springboot优先到templates/error下找404.html,如果没有404.html,再找有没有4xx.html,有的话就会使用4xx.html。

在错误页面我们能够获取到的信息:

  • timestamp:时间戳
  • status:状态码
  • error:错误提示
  • exception:异常对象 springboot2.1.6在页面获取异常对象要现在全局配置文件中加入:server.error.include-exception=true
  • message:异常消息
  • errors:JSR数据校验的错误

2.在没有模板引擎(模板引擎找不到这个错误页面)的情况下,springboot会到静态资源文件夹下的error包下找。

3.以上都没有找到错误页面,就默认用springboot默认的错误提示页面

错误异常处理——自定义响应json数据

上边的错误处理中,如果是浏览器访问可以响应我们自己定制的错误页面,但是如果是其他客户端访问,则只会响应固定的json数据,如下图所示:

Springboot异常错误处理解决方案详解

下边讲解三个异常处理返回自定义json数据的方式

首先编写一个自定义异常类

public class UserNotExitException extends RuntimeException {
  public UserNotExitException() {
    super("用户不存在");
  }
}

网站栏目:Springboot异常错误处理解决方案详解-创新互联
URL标题:http://chengdu.cdxwcx.cn/article/csdpch.html