异常处理步骤流程

异常处理步骤流程1、执行目标方法,目标方法运行期间有任何异常都会被catch、而且标志当前请求结束;并且用dispatchException2、进入视图解析流程(页面渲染?)processDispatchResult(processedRequest,response,mappedHandler,mv,

大家好,欢迎来到IT知识分享网。

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 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30894.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信