Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktPmExFi 441 of 522 menu
◀ ▶

Блок finally в Kotlin

Иногда нужно выполнить код и при успехе, и при ошибке: вывести итог, сбросить флаг, напечатать разделитель. Для этого после catch добавляют блок finally. Он запускается всегда, когда завершилась пара try-catch.

try { // risky code } catch (e: SomeException) { // handle } finally { // always runs }

Обратимся к несуществующему индексу списка и в finally выведем количество элементов:

val nums = listOf(10, 20, 30) try { println(nums[9]) } catch (e: IndexOutOfBoundsException) { println("bad index") } finally { println(nums.size) }

Если исключения не было, catch пропускается, но finally все равно выполнится:

val nums = listOf(4, 5, 6) try { println(nums[0]) } catch (e: IndexOutOfBoundsException) { println("bad index") } finally { println("end") }

Блок finally может стоять и без catch, если исключение уходит выше, но завершающий шаг все равно нужен. В учебных задачах чаще используют полную форму try-catch-finally.

Даны a и b. В try выведите a / b. При делении на ноль выведите "error" в catch. В finally выведите "finished".

Дана строка line. В try выведите line.toInt(). При NumberFormatException выведите "nan". В finally выведите длину строки line.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить