br/>3.3咸鱼翻身
4.介绍了这么多,简单画张图总结一下。蓝色的部分是Spring默认添加的3类异常处理器,×××部分是我们添加的异常处理以及其所被调用的位置和顺序。看看哪里还有不太清楚的,往回翻翻看(ResponseStatusExceptionResolver是针对@ResponseStatus注解,这里不再详述)。

图13:异常总结
如果有需要将MyHandlerExceptionResolver提前处理,甚至排在ExceptionHandlerExceptionResolver之前,能做到么?答案是肯定的,在Spring中如果想将MyHandlerExceptionResolver异常处理提前,需要再实现一个Ordered接口,实现里面的getOrder方法即可,这里返回-1,将其放在最上面,这次咸鱼终于可以翻身了。

图14:实现Ordered接口
运行看一下结果是不是符合预期,提醒一下,我们三个异常处理都是生效的,如下图:

图15:实现Ordered接口运行结果
4.总结
本文主要通过介绍SpringMVC中三类常见的全局异常处理,在调试中发现了问题,进而引发去Spring源码中去探究原因,最终解决问题,希望大家能有所收获。当然Spring异常处理类不止介绍的这些,有兴趣的童鞋请自行探索!深入理解Spring异常处理
原文:http://blog.51cto.com/13981400/2347742