文章目录
- 1.1`@ExceptionHandler`注解下的异常
- 1.2`@ResponseStatus`注解下的方法
- 1.3`DefaultHandlerExceptionResolver`解析方法
0.前记
根据之前的文章DispatcherServlet.doDisptcher()方法中的方法ha.handle返回ModelAndView处理的方法processDispatchResult

1.processHandlerException方法
这个方法就是如果出现异常的话, 异常解析器进行处理异常。


- 先判断是否是
@ExceptionHandler注解下的方法, 如果是的话另外处理AbstractHandlerMethodExceptionResolver.doResolveException() ->ExceptionHandlerExceptionResolver.doResolveHandlerMethodException() - 判断是否是
@ResponseStatus注解下的方法RespinseStatusExceptionResolver.doResolveException -
DefaultHandlerExceptionResolver.doResolveException()
这里的HandlerExceptionResolver主要有3个实现类

1.1@ExceptionHandler注解下的异常
AbstractHandlerMethodExceptionResolver.doResolveException()


1.2@ResponseStatus注解下的方法



- 获取到装填码
- 获取到出错理由
- 然后渲染异常的页面
- 返回空的ModelAndView

1.3DefaultHandlerExceptionResolver解析方法

这里比如handleMissingServletRequestParameter 这个 return


会跳转页面 + 返回空的ModelAndView
















