
-
首先 在请求的目标方法处理出现异常的时候 都会被catch 并且标志当前请求结束
并且用dispatchexception
-
进入错误视图的解析流程(页面的渲染)
processDispatchResult方法 参数有mv 和 dispatchException
-
mv = processHandler Exception;处理handler发生的异常,处理完成后返回模型视图
-
在执行请求的异常处理时 会依次遍历系统默认的视图解析器
-

-
如果所有默认的异常处理解析器都不能解析这个异常 那么tomcat底层会重新发出一个/error请求
遍历所有的ErrorViewResolve谁能解析出ModelAndView对象 就使用谁
而BasicErrorController中有一个解析错误视图的组件为defaultErrorView

几种自定义异常

-
定义全局异常处理器
@ControllerAdvice + @ExceptionHandler
原理:在请求的方法中发生错误时 会catch掉当前请求 并且执行异常处理
会遍历系统中的异常处理器 进行异常解析 其中就有一个ExceptionHandlerExceptionResolver
进行执行(我们自定义的方法) 最终返回一个ModelAndView对象

-
@ResponseStatus自定义异常
-
spring的底层异常
-
自定义HandlExceptionResolver定义异常 「@Order改变异常解析器的权重」
本文详细介绍了Spring MVC框架中异常处理的整个流程,包括如何通过自定义全局异常处理器来处理业务逻辑中的异常情况,以及如何利用@ResponseStatus注解来自定义HTTP状态码。
840

被折叠的 条评论
为什么被折叠?



