Sobes.tech
Junior

Jak zacházet s výjimkami v Kotlinu?

sobes.tech AI

Odpověď od AI

V Kotlinu se pro zpracování výjimek používají bloky try, catch a finally.

fun divide(a: Int, b: Int): Int {
    try {
        // Potenciálně nebezpečný kód
        return a / b
    } catch (e: ArithmeticException) {
        // Zpracování specifické výjimky
        println("Chyba: dělení nulou!")
        return 0
    } catch (e: Exception) {
        // Zpracování obecných výjimek
        println("Nastala neznámá chyba: ${e.message}")
        throw e // Pokud je potřeba, znovu vyvolat výjimku
    } finally {
        // Kód, který se provede za všech okolností
        println("Uvolnění zdrojů nebo jiné závěrečné akce")
    }
}
  • Blok try obsahuje kód, který může vyvolat výjimku.
  • Blok catch se používá k zachycení a zpracování výjimek. Lze použít více bloků catch pro různé typy výjimek. Typy výjimek jsou zachyceny v pořadí jejich deklarace.
  • Blok finally obsahuje kód, který se provede vždy, bez ohledu na to, zda byla výjimka vyvolána nebo ne. Tento blok se často používá k uvolnění zdrojů.

Na rozdíl od Javy, Kotlin nemá povinné "checked" výjimky. Všechny výjimky v Kotlinu jsou "unchecked".

Pro vyvolání výjimky se používá klíčové slovo throw:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Věk nesmí být záporný")
    }
    // ...
}

Také je možné používat standardní třídy výjimek z knihovny nebo vytvářet vlastní, děděním od Exception nebo RuntimeException.