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

Что будет, если произойдет исключение в finally

Если исключение возникнет в блоке finally, оно перекроет любое исключение, которое могло быть выброшено в try или catch. Только последнее исключение будет передано выше по стеку вызовов. Это может привести к потере информации о первоначальной ошибке.

Пример:

java
try {
    throw new RuntimeException("Ошибка в try");
} finally {
    throw new RuntimeException("Ошибка в finally");
}

В этом случае будет выброшено только RuntimeException("Ошибка в finally"), а исходное исключение из try будет потеряно. Чтобы избежать этого, можно либо аккуратно обрабатывать исключения в finally, либо использовать подавленные исключения (с Java 7+ через addSuppressed()).

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

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

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

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