Что будет если блок finally выбросит ошибку?
Как известно, последовательность операций, записанная finally, должна выполняется в любом случае, независимо от того появлялась ли ошибка в try.
Если ошибки в try не возникало, то при появлении его в finally оно пойдёт по стеку исключений, до тех пор, пока не придёт в catch.
Более интересен случай, когда исключение было в try, а потом возникло и в finally. Тогда исключение, возникшее в finally, перекроет исключение из блока try, и пойдёт по стеку. Начальная ошибка будет потеряна.
Это усложняет отладку.
Проверьте себя после изучения темы
Бесплатный бот с тестами и практическими заданиями по Kotlin.
- 22 бесплатных урока
- Тесты к каждому уроку (всего 220 вопросов)
- Задачи в рамках практики KotlinSprint (120 задач) и курсовой проект «Телеграм бот для изучения иностранных слов»