try-with-resources和multiple catch

从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);
}

猜你喜欢

转载自blog.csdn.net/qweqwruio/article/details/81329342