Как и в ответе на библиотеку ввода-вывода Commons, Google Guava Libraries имеет аналогичный вспомогательный метод для вещей, которые являются java.io.Closeable.Класс com.google.common.io.Closeables .Функция, которую вы ищете, также называется Commons IO: closeQuietly ().
Или вы можете свернуть свою собственную, чтобы закрыть группу, например: Closeables.close (closeable1, closeable2, closeable3, ...):
import java.io.Closeable;
import java.util.HashMap;
import java.util.Map;
public class Closeables {
public Map<Closeable, Exception> close(Closeable... closeables) {
HashMap<Closeable, Exception> exceptions = null;
for (Closeable closeable : closeables) {
try {
if(closeable != null) closeable.close();
} catch (Exception e) {
if (exceptions == null) {
exceptions = new HashMap<Closeable, Exception>();
}
exceptions.put(closeable, e);
}
}
return exceptions;
}
}
И это даже возвращает карту любых исключений, которые были выброшены или нулевые, если их не было.