文章目录
检查型异常和非检查型异常——Java
Java语言规范将派生于Error类或RuntimeExceprion类的所有异常称为非检查型(unchecked)异常,所有其他的异常称为检查型(checked)异常。这是个很有用的术语。
Java中的异常类型分布:
但是,单单这样理解有些困难,我查了一些资料,用一些简单的语言来解释它们。
检查型异常
检查型异常,简单来说就是在现实中无法避免的,我们在设计程序时无法预知的异常抛出。例如:读取一个文件的内容。如果这个文件不存在或者程序没有读取权限时,就会抛出一个异常。我们必须要用throws
声明它会出现的异常类型,或者用try...catch
来捕获异常,并指明出现错误时要执行的操作。例如:
- 试图超越文件末尾继续读取数据;
- 试图打开一个不存在的文件;
- 试图根据给定的字符串查找 Class 对象,而这个字符串表示的类并不存在。
这类检查型异常必须要在代码中声明出来,它是不可避免和预知的。如果没有声明,集成开发环境IDE将会报错!它会帮我们检查,故称 检查型异常。
这类异常我们必须要解决。
非检查型异常
非检查型异常,就是在代码实现阶段就可以预知和避免的一