Назад к вопросам
Senior
4
Как работает try-with-resources в Java?
Компании, где спрашивали
kode.ru
Ответ от нейросети
sobes.tech AI
Конструкция try-with-resources в Java используется для автоматического закрытия ресурсов, которые реализуют интерфейс AutoCloseable (например, потоки, соединения с базой данных).
Синтаксис:
try (ResourceType resource = new ResourceType()) {
// работа с ресурсом
}
После выполнения блока try ресурс автоматически закрывается, даже если внутри блока возникло исключение. Это упрощает управление ресурсами и предотвращает утечки.
Пример:
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line = br.readLine();
System.out.println(line);
} catch (IOException e) {
e.printStackTrace();
}
Здесь BufferedReader будет закрыт автоматически после выхода из блока try, без необходимости явно вызывать br.close() в finally.
Важные особенности:
- Можно объявлять несколько ресурсов через точку с запятой.
- Если при закрытии ресурса возникает исключение, оно добавляется как suppressed к основному исключению.
- Улучшает читаемость и надежность кода.