Назад к вопросам
Junior — Middle
71
Чем отличаются конструкции try-catch и try-with-resources в обработке исключений и управлении ресурсами?
Ответ от нейросети
sobes.tech AI
Конструкция try-catch используется для обработки исключений: в блоке try выполняется код, который может выбросить исключение, а в блоке catch — обработка этого исключения.
try-with-resources (добавлен в Java 7) — это специальный вариант try, который автоматически управляет ресурсами, реализующими интерфейс AutoCloseable (например, потоки, файлы, соединения с базой). Ресурсы объявляются в скобках после try, и после завершения блока они автоматически закрываются, даже если возникло исключение.
Пример:
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line = br.readLine();
System.out.println(line);
} catch (IOException e) {
e.printStackTrace();
}
Здесь BufferedReader автоматически закроется после выполнения блока, что избавляет от необходимости писать finally с вызовом close().
Итого:
try-catch— для обработки исключений.try-with-resources— для автоматического закрытия ресурсов и обработки исключений.