Это кажется почти глупым, но что является самым надежным шаблоном для закрытия OutputStream? Прямо сейчас у меня есть что-то вроде следующего, которое просто кажется try-catch-finally-overkill:
private void writeContentsToFile(OutputStream ostream, Properties contents) {
try {
contents.store(ostream, "comments");
}
catch (IOException e) {
throw new ResourceException("Failed to write contents", e);
}
finally {
try {
ostream.close();
}
catch (IOException e) { /* what can be done here anyway? */ }
}
}
Зачем закрывать броски, проверенное исключение все еще остается загадкой для меня. Я могу создать метод-обертку, который делает блок close/catch, но если есть что-то уже там вроде FileUtil.closeFileAndThrowUncheckedException()
, я бы хотел его использовать. Это становится более полезным, когда у вас много небольших проектов с большим количеством разработчиков; один из способов сделать это правильно.