Оператор try-with-resources обеспечивает автоматическое закрытие ресурсов, реализующих интерфейс java.lang.AutoCloseable.
Механизм работы:
try объявляются и/или инициализируются один или несколько ресурсов, разделенных точкой с запятой.AutoCloseable, который имеет один метод close():
java
try (как при успешном выполнении, так и при выбросе исключения) Java-машина автоматически вызывает метод close() у каждого ресурса, объявленного в скобках, в порядке, обратном их объявлению.try или при закрытии ресурсов выбрасываются исключения:
try, так и при закрытии ресурса, исключение из блока try является основным, а исключение при закрытии ресурса подавляется (suppressed) и может быть получено методом getSuppressed() у основного исключения.Преимущества:
close() в блоке finally.Пример:
Традиционный подход с finally:
java
Использование try-with-resources:
java
Множественные ресурсы:
java