SpringBoot--->>>web-->>异常处理的具体流程

本文深入剖析了SpringBoot中异常处理的具体流程,从控制器方法抛出异常开始,跟踪源码,详细解释了DispatcherServlet如何捕获并处理异常,包括DefaultErrorAttributes和handlerExceptionResolvers的角色,以及当异常无法处理时,系统如何转发到/error请求,并由BasicErrorController进行处理。最后,总结了异常处理的关键步骤,强调了DefaultErrorViewResolver在转换错误视图中的作用。
摘要由CSDN通过智能技术生成

做好准备,在doDispatch方法做好断点,观察源码运行。

略过前面的准备工作直接来到执行目标方法的哪一行上面

观察源代码

// Actually invoke the handler.
mv = ha.handle(processedRequest, response, mappedHandler.getHandler());

当前的错误是被我写在控制器方法中,所以只要放行这一句后就会出现异常,然后要做的就是观察底层如何处理异常。

在方法执行后出现异常后,程序捕获到异常来进行处理

//首先将捕获的一场转换为前面定义的异常类型        --Exception dispatchException = null;
catch (Exception ex) {
   dispatchException = ex;

接着来到

//传入了request、response、异常、mv等进行处理异常
processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException);

进入后会来到Dispatcher Servlet内部的一个方法

//这个方法接收了上面传来的全部参数,并做处理,试图给出一个结果
private void processDispatchResult(HttpServletRequest request, HttpServletResponse response,
      @Nullable HandlerExecu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值