Junior
Как да обработваме изключения в Kotlin?
sobes.tech AI
Отговор от 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.