java异常分类

       在java程序语言中,异常对象都是派生于Throwable类的实例。稍后还可以看到,如果java中内置的异常类不能够满足需求,我们可以创建自己的异常类。下图就是一个java异常层次的一个简化示意图。

        需要注意的是,所有的异常都是由Throwable继承而来,但在下-层立即分解为两个分支: Error和Exception。
Error类层次结构描述了Java运行时系统的内部错误和资源耗尽错误。应用程序不应该抛出这种类型的对象。如果出现了这样的内部错误,除了通告给用户,并尽力使程序安全地终止之外,再也无能为力了。这种情况很少出现。
在设计Java程序时需要关注Exception层次结构。这个层次结构又分解为两个分支:一个分 支派生于RuiumcException;另一个分支包含其他异常。划分两个分支的规则是:由程序错误导致的异常属于RuntimeException ;而程序本身没有问题,但由于像I/O错误这类问题导致的异常属于其他异常。
’派生于RuntimeException的异常包含下面几种情况:

          ●错误的类型转换。

          ●数组访问越界。

          ●访问null指针。
 不是派生于RuntimeException的异常包括:

         ●试图在文件尾部后面读取数据。

         ●试图打开一个不存在的文件。
         ●试图根据给定的字符查找Cass 对象,而这个字符串表示的类并不存在。

       “如果出现RuntimeException异常,那么就一定是你的问题”是条相 当有道理的规则。应该通过检测数组下标是否越界来避免ArrayIndexOutOfBoundsException异常;应该通过在使用变量之前检测是否为null来杜绝NullPointerException异常的发生。
        如何处理不存在的文件呢?难道不能先检查文件是否存在在打开他吗?恩,这个文件有可能在你检查他是存在之前就已经被删掉了。因此,“是否存在”取决于环境,而不只是取决于你的代码。

       java语言规范将派生与error类或RuntimeException类的所有异常称为非受查异常,所有其他异常称为受查异常。这是两个很有用的术语,在后面还会用到。编译器将核查是否为所有的受查异常提供了异常处理器。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值