Sobes.tech
Junior

Ako spravovať výnimky v Kotlin?

sobes.tech AI

Odpoveď od AI

V Kotlinu sa zaobchádzanie s výnimkami používajú bloky try, catch a finally.

fun divide(a: Int, b: Int): Int {
    try {
        // Potenciálne nebezpečný kód
        return a / b
    } catch (e: ArithmeticException) {
        // Spracovanie špecifickej výnimky
        println("Chyba: delenie nulou!")
        return 0
    } catch (e: Exception) {
        // Spracovanie všeobecných výnimiek
        println("Nastala neznáma chyba: ${e.message}")
        throw e // Ak je potrebné, znovu vyvolať výnimku
    } finally {
        // Kód, ktorý sa vykoná v každom prípade
        println("Uvoľnenie zdrojov alebo iné záverečné akcie")
    }
}
  • Blok try obsahuje kód, ktorý môže vyvolať výnimku.
  • Blok catch sa používa na zachytenie a spracovanie výnimiek. Môžu sa použiť viaceré bloky catch pre rôzne typy výnimiek. Typy výnimiek sa zachytávajú v poradí ich deklarácie.
  • Blok finally obsahuje kód, ktorý sa vykoná vždy, bez ohľadu na to, či bola výnimka vyvolaná alebo nie. Tento blok sa často používa na uvoľnenie zdrojov.

Na rozdiel od Javy, Kotlin nemá povinné "checked" výnimky. Všetky výnimky v Kotlin sú "unchecked".

Na vyvolanie výnimky sa používa kľúčové slovo throw:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Vek nemôže byť záporný")
    }
    // ...
}

Tiež je možné použiť štandardné triedy výnimiek z knižnice alebo vytvoriť vlastné, dediace od Exception alebo RuntimeException.