Встречается на собеседованиях • сегодня

В чем разница между try-catch-finally и try-with-resources

Основное отличие в управлении ресурсами. try-catch-finally требует ручного закрытия ресурсов в блоке finally, что может привести к утечкам, если забыть закрыть или возникнет исключение при закрытии.

try-with-resources (появился в Java 7) автоматически закрывает ресурсы, которые реализуют AutoCloseable. Ресурсы объявляются в скобках после try, и Java гарантирует их закрытие в правильном порядке.

Пример с try-with-resources:

java
try (FileInputStream fis = new FileInputStream("file.txt");
     BufferedInputStream bis = new BufferedInputStream(fis)) {
    // работа с ресурсами
} catch (IOException e) {
    // обработка исключения
}

Преимущества try-with-resources:

  1. Более короткий и читаемый код
  2. Автоматическое закрытие ресурсов
  3. Подавленные исключения (если возникают и в try, и при закрытии) доступны через Throwable.getSuppressed()
  4. Защита от ошибок при ручном закрытии ресурсов
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы