springboot全局异常拦截源码解读
Posted cncxy-20170829
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot全局异常拦截源码解读相关的知识,希望对你有一定的参考价值。
在springboot中我们可以通过注解@ControllerAdvice来声明一个异常拦截类,通过@ExceptionHandler获取拦截类抛出来的具体异常类,我们可以通过阅读源码并debug去解读springboot的异常拦截机制。
在了解异常拦截机制之前,我引用他人图片大致介绍下springmvc的大致调用流程
异常拦截处理流程:
1. 首先会调用DispatcherServlet的doDispatch分发请求
2. 通过processDispatchResult方法处理分发结果
3. 如果处理的分发结果发生了异常,则设置dispatchException变量为对应的异常,如果有异常则调用processHandlerException方法进行异常处理,如果是ModelAndViewDefiningException则获取它的ModelAndView,如果不是则调用方法processHandlerException进行异常处理,最终调用AnnotationMethodHandlerExceptionResolver的doResolveException解析异常并返回ModelAndView。
注:springmvc流程转载自https://www.cnblogs.com/whuthxb/p/9385761.html
以上是关于springboot全局异常拦截源码解读的主要内容,如果未能解决你的问题,请参考以下文章