Ответ 1
Ресурс закрывается перед уловом или, наконец, блокирует. Смотрите tutorial.
Оператор try-with-resources может иметь catch и, наконец, блокировать, как обычный пример try. В заявлении try-with-resources любой блок catch или finally запускается после того, как объявленные ресурсы были закрыты.
Чтобы оценить это пример кода:
class ClosableDummy implements Closeable {
public void close() {
System.out.println("closing");
}
}
public class ClosableDemo {
public static void main(String[] args) {
try (ClosableDummy closableDummy = new ClosableDummy()) {
System.out.println("try exit");
throw new Exception();
} catch (Exception ex) {
System.out.println("catch");
} finally {
System.out.println("finally");
}
}
}
Вывод:
try exit
closing
catch
finally