Der Result-Typ
Modellieren Sie Erfolg und Fehler
Der Result-Typ ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Erfolg oder Fehler
Viele Operationen können fehlschlagen. Kotelins Typ Result modelliert ein Ergebnis, das entweder ein Wert enthaltender Erfolg oder ein eine Exception enthaltender Fehler ist – ohne eine Exception auszulösen.
Einen Erfolg erstellen
Verpacken Sie einen Wert mit Result.success(value) in ein erfolgreiches Ergebnis.
fun main() {
val r: Result<Int> = Result.success(42)
println(r.isSuccess)
println(r.getOrNull())
}Einen Fehler erstellen
Repräsentieren Sie einen Fehler mit Result.failure(exception). Eine Exception wird erst ausgelöst, wenn Sie das Ergebnis explizit entpacken.
fun main() {
val r: Result<Int> = Result.failure(IllegalStateException("bad"))
println(r.isFailure)
println(r.exceptionOrNull()?.message)
}getOrNull und exceptionOrNull
Untersuchen Sie ein Ergebnis sicher: getOrNull() gibt den Wert oder null zurück, und exceptionOrNull() gibt den Fehler oder null zurück.
fun main() {
val ok = Result.success("hi")
val bad = Result.failure<String>(RuntimeException("oops"))
println(ok.getOrNull())
println(bad.exceptionOrNull()?.message)
}getOrDefault
Geben Sie mit getOrDefault einen Ersatzwert für Fehler an. Das ist übersichtlicher als Null-Prüfungen, wenn Sie einen sinnvollen Standardwert haben.
fun main() {
val bad: Result<Int> = Result.failure(Exception())
println(bad.getOrDefault(0))
val ok: Result<Int> = Result.success(7)
println(ok.getOrDefault(0))
}getOrElse
getOrElse berechnet den Ersatzwert anhand der Exception, sodass Sie auf verschiedene Fehler unterschiedlich reagieren können.
fun main() {
val r: Result<Int> = Result.failure(IllegalArgumentException("nope"))
val value = r.getOrElse { e -> if (e is IllegalArgumentException) -1 else -2 }
println(value)
}getOrThrow
Wenn Sie die Exception auslösen möchten, gibt getOrThrow() den Wert zurück oder löst die gespeicherte Exception erneut aus.
fun main() {
val ok = Result.success(10)
println(ok.getOrThrow())
try {
Result.failure<Int>(IllegalStateException("fail")).getOrThrow()
} catch (e: Exception) {
println("caught: " + e.message)
}
}Ein Result zurückgeben
Eine Funktion kann Result zurückgeben, um einen Fehler in ihrer Signatur ausdrücklich zu machen und Aufrufer dazu zu zwingen, beide Ergebnisse zu behandeln.
fun parse(s: String): Result<Int> {
val n = s.toIntOrNull()
return if (n != null) Result.success(n)
else Result.failure(NumberFormatException(s))
}
fun main() {
println(parse("123").getOrNull())
println(parse("x").exceptionOrNull()?.message)
}Result im Vergleich zu Exceptions
Exceptions sind in Signaturen unsichtbar und unterbrechen den Kontrollfluss. Result macht einen Fehler zu einem Wert, den Sie wie jeden anderen weitergeben und umformen können – explizit, kombinierbar und schwer zu ignorieren.
Wann Sie Result verwenden sollten
Verwenden Sie Result für erwartete, behebbare Fehler, die von Aufrufern behandelt werden sollen. Lösen Sie Exceptions weiterhin bei wirklich außergewöhnlichen Situationen und Programmierfehlern wie Vertragsverletzungen aus.
Ein Wert statt eines Sprungs
Die entscheidende Änderung: Ein Fehler wird zu einem normalen Rückgabewert. Als Nächstes lernen Sie runCatching kennen, das ausgelöste Exceptions automatisch in ein Result umwandelt.
Kurzer Test
Testen Sie Ihr Verständnis des Typs Result.
Zusammenfassung
Sie haben den Typ Result kennengelernt:
- Erstellen mit
Result.success/Result.failure - Untersuchen mit
getOrNull,exceptionOrNull - Fehlerbehandlung mit
getOrDefault,getOrElse,getOrThrow - Zurückgeben, um Fehler ausdrücklich zu machen
Als Nächstes: runCatching.
Lerne Kotlin mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 51
- Lektionen
- 203
Häufig gestellte Fragen
Ist die Lektion „Der Result-Typ“ kostenlos?
Ja — der vollständige Text von „Der Result-Typ“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Der Result-Typ“?
Modellieren Sie Erfolg und Fehler Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Kotlin Academy zu starten?
Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Der Result-Typ“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?
Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.