spring mvc全局异常处理(二)

没实现异常全局拦截的时候,需要每个接口上面都try异常,防止报错信息给用户看见,造成不好的用户体验,但是由于是否感觉每次都需要try和捕捉,多了几行代码不说,代码的阅读性也降低了很多:

 spring mvc全局异常处理(二)

抱着这个问题我就在想能不能做到异常统一拦截呢,于是去网上找了些资料,编写了一下程序代码:

HandlerExceptionResolver用于捕捉异常,源码分析参考下面链接:

http://blog.csdn.net/initphp/article/details/39028155 

 

具体代码实现:

1.实现HandlerExceptionResolver接口,重写方法:

 spring mvc全局异常处理(二)

重写方法内容:

 spring mvc全局异常处理(二)

创建ex.jsp:

 spring mvc全局异常处理(二)

 把拦截器注入容器:

 spring mvc全局异常处理(二)

编写抛出异常的方法:

 spring mvc全局异常处理(二)

测试,启动项目,我的项目叫做imkb

http://localhost:8180/imkb/ex 是访问我抛出异常的接口!

 spring mvc全局异常处理(二)

证明全部成功,但是如果我只是希望获得数据不希望页面跳转怎么办?

修改方法:

 spring mvc全局异常处理(二)

 

我们在次访问 http://localhost:8180/imkb/ex 

 spring mvc全局异常处理(二)

看到了我们熟悉的json数据,页面也没跳转(适用于页面的异步请求)

如果想用注解实现请看我另外一篇