Sobes.tech
Junior

Kuidas Kotlinis erandeid töödelda?

sobes.tech AI

Vastus AI-lt

Kotlinis kļūdu apstrādei izmanto try, catch un finally blokus.

fun divide(a: Int, b: Int): Int {
    try {
        // Potenciāli bīstams kods
        return a / b
    } catch (e: ArithmeticException) {
        // Īpašas kļūdas apstrāde
        println("Kļūda: dalīšana ar nulli!")
        return 0
    } catch (e: Exception) {
        // Vispārējas kļūdas apstrāde
        println("Notika nezināma kļūda: ${e.message}")
        throw e // Pārsūtīt kļūdu, ja nepieciešams
    } finally {
        // Kods, kas tiek izpildīts jebkurā gadījumā (neatkarīgi no kļūdas)
        println("Resursu atbrīvošana vai citas noslēguma darbības")
    }
}
  • try bloks satur kodu, kas var izraisīt kļūdu.
  • catch bloks tiek izmantots kļūdu uztveršanai un apstrādei. Var izmantot vairākus catch blokus, lai apstrādātu dažāda veida kļūdas. Kļūdu tipi tiek uztverti to deklarēšanas secībā.
  • finally bloks satur kodu, kas tiek izpildīts vienmēr, neatkarīgi no tā, vai kļūda tika izraisīta un vai tā tika uztverta. Šis bloks bieži tiek izmantots resursu atbrīvošanai.

Atšķirībā no Java, Kotlin nav obligātu ("checked") kļūdu. Visas kļūdas Kotlin ir "unchecked".

Kļūdu izsaukšanai tiek izmantots atslēgvārds throw:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Vecums nevar būt negatīvs")
    }
    // ...
}

Tāpat var izmantot standarta kļūdu klases no standarta bibliotēkas vai izveidot savas, mantojoties no Exception vai RuntimeException.