Sobes.tech
Junior

Wie behandelt man Ausnahmen in Kotlin?

sobes.tech KI

Antwort von AI

In Kotlin werden die Blöcke try, catch und finally zur Behandlung von Ausnahmen verwendet.

fun divide(a: Int, b: Int): Int {
    try {
        // Potenziell gefährlicher Code
        return a / b
    } catch (e: ArithmeticException) {
        // Behandlung spezifischer Ausnahmen
        println("Fehler: Division durch Null!")
        return 0
    } catch (e: Exception) {
        // Behandlung allgemeiner Ausnahmen
        println("Unbekannter Fehler aufgetreten: ${e.message}")
        throw e // Bei Bedarf Ausnahme erneut werfen
    } finally {
        // Code, der in jedem Fall ausgeführt wird (unabhängig von der Ausnahme)
        println("Ressourcenbereinigung oder andere abschließende Aktionen")
    }
}
  • Der try-Block enthält Code, der eine Ausnahme auslösen kann.
  • Der catch-Block wird verwendet, um Ausnahmen abzufangen und zu behandeln. Mehrere catch-Blöcke können für verschiedene Ausnahmetypen verwendet werden. Die Ausnahmetypen werden in der Reihenfolge ihrer Deklaration abgefangen.
  • Der finally-Block enthält Code, der immer ausgeführt wird, unabhängig davon, ob eine Ausnahme ausgelöst wurde oder nicht. Dieser Block wird häufig zur Freigabe von Ressourcen verwendet.

Im Gegensatz zu Java hat Kotlin keine verpflichtenden "checked"-Ausnahmen. Alle Ausnahmen in Kotlin sind "unchecked".

Um Ausnahmen zu werfen, wird das Schlüsselwort throw verwendet:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Alter darf nicht negativ sein")
    }
    // ...
}

Es ist auch möglich, Standard-Ausnahmeklassen aus der Bibliothek zu verwenden oder eigene zu erstellen, indem man von Exception oder RuntimeException erbt.