springmvc中拦截器与springmvc全局异常处理器的问题


最近在做一个练手的小项目,

系统架构中用了springmvc的全局异常处理器,

做了系统的统一异常处理。

后来加入了springmvc的拦截器,

为了一些需求,

在拦截器中的 preHandle 方法 中抛出了系统自定义异常,

当时有有个疑惑,

就是抛出的这个异常全局异常处理器怎么处理的。

这里的全局异常处理器时通过实现HandlerExceptionResolver这个接口实现的

 

要指出的是 resolveException方法 中 handler中代表的是什么,我没遇到这个问题之前我认为这玩意可以强转成 HandlerMethod 对象 ,然后这个对象 获取 Method对象

1 Method method = handlerMethod.getMethod();

然后这个 method 是系统中抛出异常的方法。

这样理解是不正确的。

如果是这样的话,那么我在拦截器中抛出异常的话,那么这个method应该是 preHandle,

下面做了一个实验,

在拦截器中抛出了异常,

 

虽然是拦截器中抛出的异常,这里解析出来的method还是目标handler中的方法,

我之前理解的这个method是任何抛出异常的方法。

事实证明,理解错了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM