异常的使用-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的主要内容,如果未能解决你的问题,请参考以下文章

异常的使用-checked or unchecked

java中checked和unchecked 异常处理

java中checked异常和unchecked异常区别?

Java 基础 - check & unchecked exception

Java异常之checked与unchecked

基础知识《十》unchecked异常和checked异常