Sobes.tech
Junior

Hogyan kezeljük a kivételeket Kotlinben?

sobes.tech MI

Válasz az MI-től

Kotlinban az try, catch és finally blokkokat az exception-ök kezelésére használják.

fun divide(a: Int, b: Int): Int {
    try {
        // Potenciálisan veszélyes kód
        return a / b
    } catch (e: ArithmeticException) {
        // Specifikus kivétel kezelése
        println("Hiba: nullával való osztás!")
        return 0
    } catch (e: Exception) {
        // Általános kivétel kezelése
        println("Ismeretlen hiba történt: ${e.message}")
        throw e // Ha szükséges, újra dobjuk a kivételt
    } finally {
        // Kód, ami minden esetben lefut
        println("Erőforrások tisztítása vagy más végső műveletek")
    }
}
  • A try blokk tartalmazza azt a kódot, ami kivételt okozhat.
  • A catch blokkot arra használjuk, hogy elfogjuk és kezeljük a kivételeket. Több catch blokk is használható különböző típusú kivételekhez. A kivétel típusokat a deklaráció sorrendjében fogják el.
  • A finally blokk tartalmazza azt a kódot, ami mindig lefut, függetlenül attól, hogy kivétel történt-e vagy sem. Gyakran erőforrások felszabadítására használják.

A Java-tól eltérően, Kotlinban nem kötelező a "checked" kivételek kezelése. Minden kivétel "unchecked".

A kivételek dobásához a throw kulcsszót használjuk:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("A kor nem lehet negatív")
    }
    // ...
}

Ezen kívül, használhatunk standard könyvtári kivétel osztályokat vagy sajátokat is, amelyek az Exception vagy RuntimeException osztályból származnak.