Java学习笔记-Java异常

在这里插入图片描述
所有异常都是由Throwable继承而来,但是在下一层即分为了Error和Exception。

  • Error类层次结构描述了Java运行时系统的内部错误或者资源耗尽错误,应用程序不应该抛出这种类型的对象。如果出现这样的内部错误,除了通知给用户并尽力使得程序安全的终止外,再也无能为力了。这种情况很少出现。
  • Exception层次又分为两个分支,一个是RuntimeException,另一个分支包含其他异常。由程序错误导致的异常是RuntimeException;而程序本身没有问题,但由于像I/O错误这类问题导致的异常属于其他异常。

派生于RuntimeException的异常包含下面几种情况:

  • 错误的类型转换
  • 数组访问越界
  • 访问NULL指针

不是派生于RuntimeException的异常包括:

  • 试图在文件尾部后面读取数据
  • 试图打开一个不存在的文件
  • 试图根据给定的字符串查找Class对象,而这个字符串表示的类并不存在。(反射)

“如果出现RuntimeException,那么一定是你的问题”,是一条相当有道理的规则。

Java语言规范将派生与Error类和RuntimeException类的所有异常称为非受检异常,所有其他的异常称为受检异常。

一个方法必须声明所有的受检异常并捕获处理(使用try catch finally或throws或throw)
而非受检异常要么不可控(Error),要么就应该避免发生(RuntimeException)。

异常的捕获、抛出和异常处理是维持代码健壮性的重要条件。灵活使用异常及处理,不仅能最大限度的避免出错,也能增加软件的容错机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值