异常处理步骤流程

2022/9/13 6:54:39

本文主要是介绍异常处理步骤流程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、执行目标方法,目标方法运行期间有任何异常都会被catch、而且标志当前请求结束;并且用 dispatchException 

2、进入视图解析流程(页面渲染?)

processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException);

3、mv = processHandlerException;处理handler发生的异常,处理完成返回ModelAndView;

  • 1、遍历所有的 handlerExceptionResolvers,看谁能处理当前异常【HandlerExceptionResolver处理器异常解析器
  • 当发生异常时 会把异常赋值给dispatchException   
    当在执行mv = ha.handle(processedRequest, response, mappedHandler.getHandler());时就出现异常了
    执行mappedHandler.triggerAfterCompletion(request, response, null);倒序的 然后返回NULL
  • 第二次 然后 进入 ha.handle---invokeForRequest --doInvoke
     return KotlinDetector.isSuspendingFunction(method) ? CoroutinesUtils.invokeSuspendingFunction(method, this.getBean(), args) : method.invoke(this.getBean(), args);
  • 进入到了BasicErrorController 处理浏览器或者非浏览器的跳转
  • 调用processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException);渲染  
  • 这个是自己追了一下 路径error的异常
  • 2、系统默认的 异常解析器;
      • 1、DefaultErrorAttributes先来处理异常。把异常信息保存到rrequest域,并且返回null;
      • 2、默认没有任何人能处理异常,所以异常会被抛出
      • 1、如果没有任何人能处理最终底层就会发送 /error 请求。会被底层的BasicErrorController处理
      • 2、解析错误视图;遍历所有的 ErrorViewResolver 看谁能解析。
      • 3、默认的 DefaultErrorViewResolver ,作用是把响应状态码作为错误页的地址,error/500.html
      • 4、模板引擎最终响应这个页面 error/500.html 


这篇关于异常处理步骤流程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程