Java Web项目整体异常处理机制
作者:网络转载 发布时间:[ 2012/9/14 10:36:10 ] 推荐标签:
需要注意的是:在使用instanceof判断异常类型的时候一定要从子到父依次找,比如BaseException继承与RuntimeException,则必须首先判断是否是BaseException再判断是否是RuntimeException。
后在error JSP页面显示具体的错误消息即可:
对不起,系统发生了未知的错误
${requestScope.errorMsg}
以上方式可以拦截后台代码所有的异常,但如果出现数据库连接异常时不能被捕获的,大家可以使用struts2的全局异常处理机制来处理:
|
上面这是一个很简单的异常拦截器,大家可以使用自定义异常,那样会更灵活一些。
以上异常拦截器可以使用其它很多技术替换:比如spring aop,servlet filter等,根据项目实际情况处理。
【补充】ajax也可以进行拦截,但是因为ajax属于异步操作,action通过response形式直接把数据返回给ajax回调函数,如果发生异常,ajax是不会执行页面跳转的,所以必须把错误信息返回给回调函数,我针对json数据的ajax是这样做的:
/** * 读取文件,获取对应错误消息 */ HttpServletResponse response = (HttpServletResponse)actioninvocation.getInvocationContext().get(StrutsStatics.HTTP_RESPONSE); response.setCharacterEncoding(Constants.ENCODING_UTF8); /** * 发送错误消息到页面 */ PrintWriter out; try { out = response.getWriter(); Message msg = new Message(errorMsg); //把异常信息转换成json格式返回给前台 out.print(JSONObject.fromObject(msg).toString()); } catch (IOException e1) { throw e; } |
以上是个人拙见,勿拍砖,谢谢。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11