异常处理框架

顶一下0)    打印该页发布时间:2011-4-28 8:39:28  来自:  点击:

 

1      问题的提出

l         在项目开发阶段,开发人员需要得到完整的异常错误信息方便分析BUG, BUG异常的准确定位,减少查找BUG产生原因的时间,提高生产效率。

l         在项目发布阶段,用户希望看到的是比较友好的错误信息。

l         每个人都按自己的方式处理异常,且各层对异常处理的方式不同,导致不同的人,不同的层编写不同的代码,造成代码使用麻烦以及复用性低,若需修改,可能改动较大。

l         异常报告信息没有统一管理。报告给用户的错误消息,都是程序员在开发中自己编写的,对用户而言,常常不是有效的友好的提示信息。

2      基本概念

Java明确区分两种类型的异常: CheckedUnchecked.
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          异常处理流程

2          后台异常的处理

1.      Façade层处理:

public class custMgr{

  public void saveCustomInfo(CustonInfo,custInfo){

         try{

       //业务处理代码

}catch(Excpetion e){

       ExceptionHander. handleException(“E001”,”3”,e);

}

}

}

2.      Service层,Business层,DAO层的处理

public class custMgr{

  public void saveCustomInfo(CustonInfo,custInfo){

         try{

       //业务处理代码

}catch(SQLException e){

       throw new ExceptionAdapter("E001",ex);

}

}

}

 

3          前台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"/>

4         数据模型

 

相关文章
  • No related news.

更多开班信息

更多就业明星

联系我们

  • 咨询热线:
    0731-82222599 82226255 82222059
  • 在线客服:
在线报名问题咨询