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

Выбрасывание исключения в Kotlin

Оператор throw создает исключение и немедленно прерывает текущий участок кода. Управление ищет подходящий catch выше по стеку вызовов. Если его нет, программа завершается с сообщением об ошибке.

throw IllegalArgumentException("message")

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

fun requireEven(n: Int) { if (n % 2 != 0) { throw IllegalArgumentException("even only") } println(n) } try { requireEven(3) } catch (e: IllegalArgumentException) { println("rejected") }

Исключение ArithmeticException можно выбросить явно, если деление на ноль проверяют вручную до операции /:

fun safeDiv(a: Int, b: Int): Int { if (b == 0) { throw ArithmeticException("zero divisor") } return a / b } try { println(safeDiv(8, 0)) } catch (e: ArithmeticException) { println("cannot divide") }

Текст в конструкторе исключения доступен через e.message в блоке catch. Сообщения в коде пишите на английском, как и имена переменных.

Создайте функцию printIfPositive с параметром n. Для n <= 0 выбросьте IllegalArgumentException с сообщением "not positive". Иначе выведите n.

В main вызовите printIfPositive(-2) внутри try. В catch для IllegalArgumentException выведите e.message.

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