Назад к вопросам
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.