Что будет если блок finally выбросит ошибку?
Как известно, последовательность операций, записанная finally, должна выполняется в любом случае, независимо от того появлялась ли ошибка в try.
Если ошибки в try не возникало, то при появлении его в finally оно пойдёт по стеку исключений, до тех пор, пока не придёт в catch.
Более интересен случай, когда исключение было в try, а потом возникло и в finally. Тогда исключение, возникшее в finally, перекроет исключение из блока try, и пойдёт по стеку. Начальная ошибка будет потеряна.
Это усложняет отладку.
Бесплатные Telegram-боты для обучения
Практика с проверкой кода и помощью ИИ-ментора
AndroidSprint AI Mentor
Проверяет Pull Request'ы в GitHub, проводит тестовые собеседования с голосом и таймером, помогает разбираться с кодом 24/7
Попробовать ИИ-ментора →KotlinSprint Bot
22 урока Kotlin, 220 тестов, 120 практических задач с код-ревью
Начать обучение Kotlin →