博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring MVC 全局异常处理(1) --HandlerExceptionResolver
阅读量:6818 次
发布时间:2019-06-26

本文共 803 字,大约阅读时间需要 2 分钟。

hot3.png

上一节小博老师给大家介绍了对异常处理的方法之一,使用默认的SimpleMappingExceptionResolver实现类。我们知道SimpleMappingExceptionResolver类是接口的实现类。所以,我们完全可以自定义一个异常解析类来处理异常信息。这一节我们就详细了解一下HandlerExceptionResolver接口,以及如何自定义实现类。

先看一下HandlerExceptionResolver接口的源代码:

 

接口定义很简单,就一个resolveException方法。该方法用来处理Controller中的异常。Exception ex参数即Controller抛出的具体异常对象。返回值类型是ModelAndView,可以通过它设置异常时显示的页面。

接下来我们实现一个自己定义的异常处理类:

006zipb5zy77mjcOe1349&690 

这段代码的意思是,如果是类型的异常跳转到ioErrorPage页面,如果是ClassNotFoundException类型的异常跳转到notFoundPage页面。当然,我们还可以做更多的处理。比如发送email,保存异常到文件等等。相对于SimpleMappingExceptionResolver可以更加灵活的进行判断和处理。

当然,还需要将自定义的BwfHandlerExceptionResolver实现类配置到Spring配置文件中。

<bean class="com.bwf.BwfExceptionResolver" />

注意:如果resolveException返回了ModelAndView,会优先显示返回值中的页面。如果,resolveException返回null,并且在web.xml中配置了error-page的500状态码对应的页面,则会显示该页面。 

转载于:https://my.oschina.net/u/2971691/blog/809530

你可能感兴趣的文章