没实现异常全局拦截的时候,需要每个接口上面都try异常,防止报错信息给用户看见,造成不好的用户体验,但是由于是否感觉每次都需要try和捕捉,多了几行代码不说,代码的阅读性也降低了很多:
抱着这个问题我就在想能不能做到异常统一拦截呢,于是去网上找了些资料,编写了一下程序代码:
HandlerExceptionResolver用于捕捉异常,源码分析参考下面链接:
http://blog.csdn.net/initphp/article/details/39028155
具体代码实现:
1.实现HandlerExceptionResolver接口,重写方法:
重写方法内容:
创建ex.jsp:
把拦截器注入容器:
编写抛出异常的方法:
测试,启动项目,我的项目叫做imkb:
http://localhost:8180/imkb/ex 是访问我抛出异常的接口!
证明全部成功,但是如果我只是希望获得数据不希望页面跳转怎么办?
修改方法:
我们在次访问 http://localhost:8180/imkb/ex :
看到了我们熟悉的json数据,页面也没跳转(适用于页面的异步请求)
如果想用注解实现请看我另外一篇