如果在 Java 应用中对 Exception 能够正确处理,那么将会使你的程序更具有健壮性。但是很多人对 Exception 中的 Checked Exception 和 Unchecked Exception 并不理解,并且 Exception 又常常被被分为 JVM Exception 和程序 Exception,这就让一些开发者显得更加困惑了,本文就这几个概念详细讲述一下。
Checked ExceptionChecked Exception 是必须在代码中进行恰当处理的 Exception,而且编译器会强制开发者对其进行处理,否则编译会不通过。你可以使用 catch 语句捕获这些 Exception 或者在方法声明处使用 throws 语句抛出该异常。
一般来说,Checked Exception 的发生主要是由于一些特殊情况没有考虑到,比如如果网络连接失败会抛出 IOException,但是我们的程序应该能够提前预料到这些可能发生的异常,并对其进行处理,这样程序在运行过程中才不会崩掉,这也是编译器强制开发者对 Checked Exception 进行处理的原因。假设在文件传输的过程中网络出现中断,这时候程序应该能够捕获到这种异常并进行处理(重新尝试传输文件)。
Unchecked ExceptionUnchecked Exception 的发生有一些是由于开发者代码逻辑错误造成的,比如:NullPointerException 这种异常可以通过检查一个引用是否为 null 来进行避免。
但是也有一些 Unchecked Exception 出现并不是因为开发者程序的问题,这些 Exception 是 java.lang.Error 的子类。就像 OutOfMemoryError 可能发生在任意一个示例对象创建时,但我们不可能在每个对象实例创建时都使用 catch 块去捕获异常。因此,我们也就不可能预料这些异常的发生,编译器在编译时也无法检测到这些异常。
出自:
Java 的 Checked 和 Unchecked Exception - 云+社区 - 腾讯云 (tencent.com)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)