Sobes.tech
Junior

Kaip tvarkyti išimtis Kotlin?

sobes.tech AI

Atsakymas iš AI

Kotlin'e naudojami try, catch ir finally blokai išimčių tvarkymui.

fun divide(a: Int, b: Int): Int {
    try {
        // Galimai pavojingas kodas
        return a / b
    } catch (e: ArithmeticException) {
        // Konkretios išimties apdorojimas
        println("Klaida: dalijimas iš nulio!")
        return 0
    } catch (e: Exception) {
        // Bendros išimtys
        println("Įvyko nežinoma klaida: ${e.message}")
        throw e // Jei reikia, išimtį galima pakartotinai išmesti
    } finally {
        // Kodas, kuris vykdomas visais atvejais
        println("Išteklių valymas ar kitos užbaigimo veiksmai")
    }
}
  • try blokas apima kodą, kuris gali išmesti išimtį.
  • catch blokas naudojamas išimčių pagavimui ir apdorojimui. Gali būti keli catch blokai skirtingų tipų išimčių apdorojimui. Išimčių tipai gaunami jų deklaravimo tvarka.
  • finally blokas apima kodą, kuris visada vykdomas, nepriklausomai nuo to, ar išimtis buvo išmesta ar ne. Dažnai naudojamas išteklių atlaisvinimui.

Skirtingai nuo Java, Kotlin neturi privalomų "checked" išimčių. Visos išimtys Kotlin'e yra "unchecked".

Išimtis galima išmesti naudojant raktinį žodį throw:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Amžius negali būti neigiamas")
    }
    // ...
}

Taip pat galima naudoti standartines bibliotekos išimtis arba kurti savo, paveldint iš Exception arba RuntimeException.