异常的使用-checked or unchecked

     较之于unix系统和c-based系统中以返回值表示子程序的成功与否,其中返回值包括异常码与正常返回码(常用 负数 表示不同异常,0表示正常结束)。java提供了专门的异常机制,可以发生异常与程序返回值做分离。异常的抛出,可以让我们及时采用正确的策略做处理。
     java中异常有两类:受检异常(checked exception)和非受检异常(uncchecked exception)。在实现功能模块时,常常会根据模块功能的需要,自定义相应的异常。

自定义异常的实现:
通过继承Exception 可以实现受检异常的定义。例
public class BalanceExption extends Exception() {...}
通过继承RuntimeException 可以实现受检异常的定义。例
public class BalanceExption extends RuntimeException() {...}

应用场景:
当异常的发生是由于 编程操作的错误(程序员犯错)时,我们常常采用  unchecked exception.
例如 数组取值越界 时抛出的IndexOutOfBoundsException 则应 采用非受检异常。如下为Vector对索引值的检查,即常用非受检异常
public synchronized int lastIndexOf(Object o, int index) {
        if (index >= elementCount)
            throw new IndexOutOfBoundsException(index + " >= "+ elementCount);

        if (o == null) {
            for (int i = index; i >= 0; i--)
                if (elementData[i]==null)
                    return i;
        } else {
            for (int i = index; i >= 0; i--)
                if (o.equals(elementData[i]))
                    return i;
        }
        return -1;
    }

当需要对参数做合法性检查以及应付系统操作(读写文件、db异常等)时,常常采用 受检异常,提醒调用方此方法可能发生异常, 强迫 调用需要时作异常做合理处理。
例银行取款子程序:
void withdraw(int amount) throws BalanceExption {
     if(amount > balance) {
          throw new BalanceExption(“amount > balance error”);
     }
}




      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值