Sobes.tech
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.