从Java 7开始提供了两个有用的特性:try-with-resources和multiple catch。
先来看看try-with-resources。当处理某些资源的时候,通常都会在finally里面做一些资源回收的工作。比如:
FileInputStream fis = new FileInputStream(file);
try {
// do something
} finally {
fis.close();
}
你可以把上述代码等价地写成:
try (FileInputStream fis = new FileInputStream(file)) {
// do something
}
是不是简单很多?满足使用try-with-resources写法的条件,代表资源的类需要实现java.io.Closeable或java.lang.AutoCloseable接口。
再来看看multiple catch。有时当我们调用一段处理时,需要同时捕获多个异常,但是我们对这些异常处理的代码是相同的。比如:
try {
// do something
} catch (AException e) {
throw new MyException(e);
} catch (BException e) {
throw new MyException(e);
}
你可以把上述代码等价地写成:
try {
// do something
} catch (AException | BException e) {
throw new MyException(e);
}
本文介绍了Java7中引入的两项重要特性:try-with-resources和multiple catch。try-with-resources简化了资源管理,通过确保在块退出时自动关闭实现了AutoCloseable接口的对象来避免资源泄露。multiple catch允许在一个catch块中处理多种类型的异常,提高了代码的简洁性和可读性。
427

被折叠的 条评论
为什么被折叠?



