Допустим, у меня есть класс с двумя членами OutputStream:
public class A {
OutputStream os1 = ...
OutputStream os2 = ...
...
}
Теперь в этом классе у меня есть метод cleanup()
, который должен как минимум попытаться закрыть оба потока:
public void cleanup() throws IOException {
try {
os1.close();
} finally {
os2.close();
}
}
Теперь я уверен, что приведенный выше код попытается закрыть оба потока, но интересно, что происходит, когда оба вызовы close()
вызывают исключение IOException. Я хочу сказать, что исключение из os2 будет распространяться вверх, но, возможно, поведение не определено. Я немного погуглил, но не нашел ничего, что бы хорошо отвечало на этот вопрос.
try
-with-resources. - person Raedwald   schedule 13.05.2019