DWR中的异常处理
来源:互联网 发布:淘宝时间倒计时代码 编辑:程序博客网 时间:2024/04/30 20:20
1 问题的提出
在项目开发阶段,开发人员需要得到完整的异常错误信息方便分析BUG, 对BUG异常的准确定位,减少查找BUG产生原因的时间,提高生产效率。而在项目发布阶段,用户希望看到的是比较友好的错误信息。因此对代码中的异常封装管理非常有必要,一般我们在使用DWR做AJAX开发很少对异常进行封装管理,要么直接抛出一堆异常信息给用户界面,要不在程序代码中进行硬编码封装。异常报告信息没有统一管理。报告给用户的错误消息,都是程序员在开发中自己编写的,对用户而言,常常不是有效的友好的提示信息。
另外每个人都按自己的方式处理异常,且各层对异常处理的方式不同,导致不同的人,不同的层编写不同的代码,造成代码使用麻烦以及复用性低,若需修改,可能改动较大。
2 基本概念
Java明确区分两种类型的异常: Checked,Unchecked.
checked exceptions, 编译器要求这些异常必须被捕获或者重新抛出.扩展了java.lang.Exception
unchecked exceptions, 不是必须捕获的,扩展了java.lang.RuntimeException的异常
3 解决思路
1. 规范代码中的异常,建立统一的异常抛出接口。
2. 在WEB层处理异常信息,建立统一的异常显示页面,统一管理和维护开发人员定义的异常,建立异常唯一标识(ErrorCode),通过唯一标识可以关联知识库得到处理建议和解决方案。
4 处理原则
1. 一般不要在DAO层,Business层,Service捕获异常,对于那些需要处理checked Exception的代码,可以利用一个ExceptionAdapter的类把checked Exception包装成一个RuntimeException抛出
2. 在Facade层次上处理unchecked异常,统一有ExceptionHander处理异常信息并记录日志后,再上抛给DWR,由dwr来显示这些异常。
3. 尽量少用checked异常。
5 解决方案
1 后台异常的处理
1. Façade层处理:
public class custMgr{
public voidsaveCustomInfo(CustonInfo,custInfo){
try{
//业务处理代码
}catch(Excpetion e){
ExceptionHander.handleException(“E001”,”3”,e);
}
}
}
2. Service层,Business层,DAO层的处理
public class custMgr{
public voidsaveCustomInfo(CustonInfo,custInfo){
try{
//业务处理代码
}catch(SQLException e){
thrownew ExceptionAdapter("E001",ex);
}
}
}
2 前台WEB异常的处理
1.在页面中加入以下js片段
function errorHandler(msg,exception){
window.showModalDialog('<%=request.getContextPath()%>/error.jsp',
{messge:msg,exceptionInfo:exception},
'help:no;resizable:no;dialogWidth:600px;dialogHeight:400px');
}
DWREngine.setErrorHandler(errorHandler);//设置异常处理方法
1. DWR配置文件中,加入一下内容
<convert match="java.lang.Exception" converter="exception"/>
<convert converter="bean"
match="com.timesontransfar.common.exception.ExceptionAdapter"/>
<convert match="java.lang.StackTraceElement"converter="bean"/>
3 数据模型
异常定义表PUB_EXCEPTION
字段名称
字段解释
字段长度
备注
ErrorCode
异常唯一标志
NUMBER(9)
关联知识库,可以查出出现该异常是的处理建议及解决方案
EXCEP_NAME
异常名称
VARCHAR2(64)
自定义的异常名称
EXCEP_MSG
VARCHAR2(512)
异常友好的错误描述
EXCEP_TYPE
异常类型
VARCHAR2(4)
EXCEP
操作建议
VARCHAR2(512)
- DWR中的异常处理
- DWR异常处理
- dwr异常处理
- DWR异常处理
- dwr的异常处理
- dwr的异常处理
- 关于DWR异常处理小结
- 关于DWR异常处理小结
- Dwr — 处理异常信息
- DWR中的异常处理以及util.js的初步用例
- DWR的异常处理及session过期
- DWR的异常处理及session过期
- DWR异常
- DWR 异常...
- DWR 调用远程方法的错误和异常处理
- dwr的基本使用,异常处理,和spring集成方法
- Java中的异常处理
- C++中的异常处理
- Oracle OLAP 与 OLTP 介绍
- 研究
- ClearType消除锯齿的原理-下
- Hostmonster上配置redmine的邮件发送功能
- 开始写技术文档
- DWR中的异常处理
- 英文SEO书签和博客类推广资源大全
- 保险行业 会计科目分类
- 将div做成服务器控件并添加单击事件
- 最新Xenocode Postbuild 2010 for .NET破解版
- 抓图函数
- oracle 初始化参数SERVICE_NAMES和客户端TNS中SERVICE_NAME
- Algorithm: Reverse a Integer to an array with recursion
- sql2008使用merge语句实现数据差异传输