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

抱着这个问题我就在想能不能做到异常统一拦截呢,于是去网上找了些资料,编写了一下程序代码:
HandlerExceptionResolver用于捕捉异常,源码分析参考下面链接:
http://blog.youkuaiyun.com/initphp/article/details/39028155
具体代码实现:
1.实现HandlerExceptionResolver接口,重写方法:

重写方法内容:

创建ex.jsp:

把拦截器注入容器:

编写抛出异常的方法:

测试,启动项目,我的项目叫做imkb:
http://localhost:8180/imkb/ex 是访问我抛出异常的接口!

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

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

看到了我们熟悉的json数据,页面也没跳转(适用于页面的异步请求)
如果想用注解实现请看我另外一篇
异常统一拦截实践

本文介绍了一种通过实现HandlerExceptionResolver接口来实现异常统一拦截的方法,避免了每个接口都需要单独进行异常处理的问题,提高了代码的可读性和维护性。
653

被折叠的 条评论
为什么被折叠?



