java 中的异常分为可检查异常和不可检查异常,前者编译时必须处理,后者可运行时处理或忽略。处理可检查异常时,使用 try...catch 块或在方法签名中声明,如 ioexception、sqlexception。对于不可检查异常,如 nullpointerexception,可选择处理或忽略。正确处理异常的最佳实践包括使用 try...catch 块处理可检查异常,谨慎使用不可检查异常,编写健壮的代码防止其触发。实战中,使用 try...finally 块正确管理资源,以确保关闭资源。

如何在 Java 中正确处理可检查异常和不可检查异常
Java 中的异常分为两类:可检查异常和不可检查异常。可检查异常在编译时必须显式处理,而不可检查异常则可以在运行时处理或忽略。
可检查异常
立即学习“Java免费学习笔记(深入)”;
- 继承自
Exception类(但不是RuntimeException) - 必须使用
try...catch块或在方法签名中声明来处理 -
示例:
IOException、SQLException、ClassNotFoundException
不可检查异常
- 继承自
RuntimeException类 - 可以选择处理或忽略,不用显式声明
-
示例:
NullPointerException、IndexOutOfBoundsException、ArithmeticException
正确处理异常的最佳实践
可检查异常:
- 总是显式地使用
try...catch块来处理可检查异常。 - 具体问题具体分析,决定是否抛出异常并重新抛出还是在本地处理异常。
- 使用
finally块释放资源,即使发生异常。
不可检查异常:
- 谨慎使用不可检查异常,只在紧急情况下使用。
- 处理不可检查异常的最佳方式是编写健壮的代码,防止它们被触发。
- 如果不可避免,可以使用
try...catch块或catch (Exception e)来处理所有不可检查异常。
实战案例:资源管理
以下代码示例演示了如何使用 try...finally 块正确管理资源:
// 需关闭的资源
BufferedReader reader = null;
try {
// 打开资源
reader = new BufferedReader(new FileReader("file.txt"));
// 使用资源进行操作
} catch (IOException e) {
// 处理 IOException 可检查异常
} finally {
// 无论如何,都确保关闭资源
if (reader != null) {
reader.close();
}
}










