Kotlin:
Fehlerbehandlung

Wie geht das:

Kotlin stellt try, catch, finally und throw zur Verfügung, um Fehler zu verwalten. So verwenden Sie sie:

fun main() {
    val numerator = 10
    val denominator = 0

    try {
        val result = numerator / denominator
        println("Ergebnis: $result")
    } catch (e: ArithmeticException) {
        println("Man kann nicht durch null teilen, Kumpel.")
    } finally {
        println("Das passiert so oder so.")
    }
}

Ausgabe:

Man kann nicht durch null teilen, Kumpel.
Das passiert so oder so.

Wenn im try-Block etwas schiefgeht, springt die Ausführung zum catch. Dieser fängt den spezifischen geworfenen Fehler ab (ArithmeticException in diesem Fall). Der finally-Block wird danach ausgeführt - unabhängig vom Ergebnis.

Tiefergehend

Der try-catch-Block gibt es seit den frühen Programmierertagen - er ist wie ein Sicherheitsnetz. Kotlin bietet auch throw an, um manuell eine Ausnahme in den Ring zu werfen, und es gibt finally für Code, der ausgeführt werden muss - oft handelt es sich um Aufräumarbeiten.

Alternativen umfassen den Result-Typ und Koltins try als Ausdruck.

val result: Result<Int> = try {
    Result.success(numerator / denominator)
} catch (e: ArithmeticException) {
    Result.failure(e)
}

Dieser Ansatz gibt ein Result-Objekt zurück – Sie erhalten entweder einen Erfolg oder einen Fehlschlag, ohne das Drama einer unbehandelten Ausnahme.

Die Umsetzung in Kotlin ist ordentlich, weil Sie try wie einen Ausdruck verwenden können, was bedeutet, dass es einen Wert zurückgibt. Optionen wie diese machen die Fehlerbehandlung in Kotlin ziemlich vielseitig. Es geht darum, das richtige Werkzeug für den Job zu wählen, genau wie Sie es in einer Werkstatt tun würden.

Siehe auch

  • Kotlin-Dokumentation über Ausnahmen: Kotlin-Ausnahmebehandlung
  • Kotlin-Dokumentation über den Result-Typ: Kotlin Result
  • Effektive Java, 3. Auflage, von Joshua Bloch - großartige Einblicke in Ausnahmen, auch wenn es spezifisch für Java ist.