Sobes.tech
Back to questions
Senior
3

Как работает try-with-resources в Java?

Companies where asked
kode.ru

Answer from AI

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 к основному исключению.
  • Улучшает читаемость и надежность кода.