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

Всегда ли выполнится код в блоке finally у try/catch

Блок finally выполняется почти всегда, но есть исключения:

  1. Если JVM завершает работу (например, System.exit() внутри try/catch)
  2. Если поток прерывается (например, Thread.interrupt())
  3. Если происходит фатальная ошибка (например, OutOfMemoryError)

Пример:

java
try {
    System.out.println("Try block");
    System.exit(0); // finally не выполнится
} finally {
    System.out.println("This won't print");
}

В нормальных условиях finally выполняется независимо от того, было исключение или нет. Это делает его идеальным для освобождения ресурсов (закрытие файлов, соединений и т.д.).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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