Назад к вопросам
Junior
200
questionbank

Как обрабатывать исключения в Kotlin?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

В Kotlin для обработки исключений используются блоки try, catch и finally.

fun divide(a: Int, b: Int): Int {
    try {
        // Потенциально опасный код
        return a / b
    } catch (e: ArithmeticException) {
        // Обработка специфического исключения
        println("Ошибка: деление на ноль!")
        return 0
    } catch (e: Exception) {
        // Обработка общих исключений
        println("Произошла неизвестная ошибка: ${e.message}")
        throw e // Переброс исключения при необходимости
    } finally {
        // Код, выполняющийся в любом случае (независимо от исключения)
        println("Очистка ресурсов или другие завершающие действия")
    }
}
  • Блок try содержит код, который может вызвать исключение.
  • Блок catch используется для перехвата и обработки исключений. Можно использовать несколько блоков catch для обработки различных типов исключений. Типы исключений перехватываются в порядке их объявления.
  • Блок finally содержит код, который выполняется всегда, независимо от того, было ли выброшено исключение и было ли оно перехвачено. Этот блок часто используется для освобождения ресурсов.

В отличие от Java, Kotlin не имеет обязательных к обработке ("checked") исключений. Все исключения в Kotlin являются "unchecked".

Для выбрасывания исключений используется ключевое слово throw:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Возраст не может быть отрицательным")
    }
    // ...
}

Также можно использовать стандартные классы исключений из стандартной библиотеки или создавать собственные, наследуясь от Exception или RuntimeException.