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.