异常的使用-checked or unchecked
Posted youxin2012
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常的使用-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”);
以上是关于异常的使用-checked or unchecked的主要内容,如果未能解决你的问题,请参考以下文章