码迷,mamicode.com
首页 > 编程语言 > 详细

springboot全局异常拦截源码解读

时间:2019-09-30 16:46:02      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:png   except   let   isp   htm   变量   bug   strong   解析异常   

在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全局异常拦截源码解读

标签:png   except   let   isp   htm   变量   bug   strong   解析异常   

原文地址:https://www.cnblogs.com/cncxy-20170829/p/11613050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!