Spring MVC 全局异常处理(1) --HandlerExceptionResolver

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

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

006zipb5zy77mj9hawka4&690
 

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

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

006zipb5zy77mjcOe1349&690 

这段代码的意思是,如果是IOException类型的异常跳转到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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值