springboot 异常处理机制源码分析
2021-02-01 16:15
标签:模拟 异常 cep error 模板 一个 处理机 htm 判断 在接收一个异常后, springboot会发送请求到默认的 BasicErrorController 这是里面默认的两个映射 第一个用于接收请求中accept包含 text/html的请求, 第二个用于接收没有text/html的请求 将这些信息放入 然后通过resolverErrorView解析视图, 可以看到调用了resolve方法 这里可以清楚的看到通过thymeleaf模板跳转到了 error/viewName, 也就是templates/error/viewName.html 然后将map和view一起返回 getProvider()会检查视图是不是在templates文件下, 如果不在就访问静态资源下的 static/error/viewName.html ,如果静态资源下没有, 就返回null 接下来就是一种特殊情况, templates和静态资源路径下找不到对应的视图, 就会进入resolve() 调用get方法 一路追踪 发现 在通过算法, 得出statutsCode = 400 可以对应 4xx的viewName , 同理 5xx 如果 4xx 和 5xx 也没有 就通过 来判断 ,如果modelAndView就带着model跳转到内置的 这里用postman 模拟一下另一个映射 会返回json数据类型的到前台 springboot 异常处理机制源码分析 标签:模拟 异常 cep error 模板 一个 处理机 htm 判断 原文地址:https://www.cnblogs.com/kikochz/p/12813153.html
然后通过java.servlet.error.status_code
这个key获取到对应的错误状态码, 通过枚举类的ValueOf方法
取到对应的枚举实例
然后再通过getErrorAttributes 获取到错误信息
这里可以看到, 放入了什么信息, 有日期, 状态码, 异常的信息,根据请求域的不同获取请求的servletPathMap
中org.springframework.http.HttpStatus$Series
是一个枚举类return (modelAndView != null) ? modelAndView : new ModelAndView("error", model);
Whitelabel Error Pag
e(这里并不是很清楚, 具体的实现)
文章标题:springboot 异常处理机制源码分析
文章链接:http://soscw.com/index.php/essay/49561.html