Шаг 58.
Язык программирования Java.
Исключения с ресурсами

На этом шаге мы поговорим про исключения с ресурсами

Рассмотрим классический пример работы с ресурсами.

открыть ресурс
try {
	использовать ресурс
} finally {
	закрыть ресурс
}

Как вы понимаете писать каждый раз блок finally может надоесть, а то и вовсе можно забыть про освобождение ресурсов. Начиная с Java SE7 внедренна конструкция, которая называется try с ресурсами (try - with - resource). В своей простейшей форме try с ресурсами выглядит следующим образом:

try (Resource res = ...) {
	использовать ресурс res
}

Весь смысл такой конструкции заключается в том, что после работы блока try будет вызван метод close() у данного ресурса, при этом неважно было ли сгенерировано исключение или нет. Есть одно ограничение на класс ресурсов - он должен реализовывать интерфейс Closeable или интерфейс AutoCloseable, которые содержать единственный метод close().

Можно также работать сразу с несколькими ресурсами. Для этого их перечисляют через запятую как это показано ниже:

try (
	Resource res1 = ...,
	Resource res2 = ...,
	Resource res3 = ...
) {
	использовать ресурсы res1, res2, res3
}

Независимо было ли сгенерировано исключение или нет, все ресурсы будут освобождены.

На следующем шаге мы рассмотрим трассировку стека вызовов функций

Предыдущий шаг Содержание Следующий шаг