点击这里给我发消息 点击这里给我发消息

Java 异常设计

添加时间:2013-12-7
    相关阅读: 设计 数据库 程序 Access 系统
 

那么在设计方法的异常时,我们应该选用CheckedException还是UncheckedException呢?这纯粹是一个设计问题,没有普适的原则。在我们的业务系统中,通常采取这样的约定:

1. 将业务级的异常设计为CheckedException。 如果该方法认为其调用者应该去关注、处理它所抛出的异常,那么定义为CheckedException。

举例1:登录程序校验用户名、密码是否匹配的方法

Public void login(String username,String passwd) throws AccountNotMatchedException {

  If (username and password not in db) {

     Throw new AccountNotMatchedException(“username not matched”,1); 

}

}

在这个应用场景里,login方法显然期望调用者去关注处理AccountNotMatchedException。所以 AccountNotMatchedException 应该设计为CheckedExcetpion。

2. 将一些底层的异常设计为UncheckedException。如果该方法认为其调用者不会或者不应该去关注、处理它所抛出的异常,那么定义为UncheckedException.

 举例2:数据库操作方法:

Public int executeUpdate(String sql,Object[] params) {

   if  fail to get database connection  {

     throw DBAccessException.

   }

}

该方法通常面向DAO方法。显然大多数情况下executeUpdate方法并不指望DAO方法会处理数据库连接失败的异常。所以应该将DBAccessException

设计成UncheckedException.

当然调用者也可以根据实际需要,将捕获到的异常重新构造成ChecedException或者UncheckedException。Jdk1.4及其以后版本的JDK已经支持链式异常,可以方便地对原有异常进行封装,而又不失去去原来信息。


 


 

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册