ErrorMvcAutoConfiguration异常处理流程

image-20210727092720158

  1. 首先 在请求的目标方法处理出现异常的时候 都会被catch 并且标志当前请求结束

    并且用dispatchexception

  2. 进入错误视图的解析流程(页面的渲染)

    processDispatchResult方法 参数有mv 和 dispatchException

  3. mv = processHandler Exception;处理handler发生的异常,处理完成后返回模型视图

  4. 在执行请求的异常处理时 会依次遍历系统默认的视图解析器

  5. iShot2021-07-27 09.01.07

  6. 如果所有默认的异常处理解析器都不能解析这个异常 那么tomcat底层会重新发出一个/error请求

    遍历所有的ErrorViewResolve谁能解析出ModelAndView对象 就使用谁

    而BasicErrorController中有一个解析错误视图的组件为defaultErrorView

iShot2021-07-27 08.43.22

几种自定义异常

image-20210727110329574

  1. 定义全局异常处理器

    @ControllerAdvice + @ExceptionHandler

    原理:在请求的方法中发生错误时 会catch掉当前请求 并且执行异常处理

    会遍历系统中的异常处理器 进行异常解析 其中就有一个ExceptionHandlerExceptionResolver

    进行执行(我们自定义的方法) 最终返回一个ModelAndView对象

    image-20210727101805393

  2. @ResponseStatus自定义异常

  3. spring的底层异常

  4. 自定义HandlExceptionResolver定义异常 「@Order改变异常解析器的权重」

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值