Sobes.tech
Назад к вопросам
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 — для автоматического закрытия ресурсов и обработки исключений.