Что такое try-with-resources

«Что такое try-with-resources» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Try-with-resources — это механизм Java для автоматического закрытия ресурсов (AutoCloseable), который появился в Java 7. Позволяет упростить работу с ресурсами, требующими закрытия (файлы, сокеты, БД соединения).

Основные особенности:

  • Ресурсы объявляются в круглых скобках после try
  • Закрытие происходит автоматически после выполнения блока
  • Обрабатывает исключения при закрытии

Пример:

try (FileInputStream fis = new FileInputStream("file.txt");
     BufferedReader br = new BufferedReader(new InputStreamReader(fis))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

Преимущества перед try-catch-finally:

  • Более читаемый код
  • Исключения при закрытии не теряются
  • Не нужно писать finally блок