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

Типы исключений в Kotlin

У каждого исключения есть тип. В catch указывают именно тип, чтобы реагировать на конкретную проблему. Ниже - типы, которые чаще всего встречаются в начальных задачах.

Исключение NumberFormatException возникает, когда строку нельзя преобразовать в число. Так бывает после toInt() или toDouble() для текста вроде "abc":

val raw = "12x" try { println(raw.toInt()) } catch (e: NumberFormatException) { println("invalid number") }

Исключение ArithmeticException связано с недопустимой арифметикой. Для целых чисел типичный случай - деление на ноль:

val x = 10 val y = 0 try { println(x / y) } catch (e: ArithmeticException) { println("bad division") }

Исключение IndexOutOfBoundsException появляется при обращении к элементу списка или строки по индексу вне допустимого диапазона:

val items = listOf("a", "b", "c") try { println(items[5]) } catch (e: IndexOutOfBoundsException) { println("no such index") }

Исключение IllegalArgumentException сигнализирует, что аргумент функции или метода не подходит по смыслу. Его часто выбрасывают сами через throw, когда значение нарушает правило задачи:

fun printPositive(n: Int) { if (n <= 0) { throw IllegalArgumentException("need positive") } println(n) } try { printPositive(-1) } catch (e: IllegalArgumentException) { println("bad argument") }

В одном catch указывают один тип. Если нужно по-разному реагировать на разные сбои, добавляют несколько блоков catch - это разберем в следующем уроке.

Дана строка input. В try получите из нее Int. В catch для NumberFormatException выведите "format".

Даны numerator и denominator. Вычислите частное в try. При ArithmeticException выведите "math".

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