0Pricing
Kotlin Academy · Lektion

runCatching

Erfassen Sie Ausnahmen als Werte

runCatching ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Exceptions abfangen

runCatching führt einen Block aus und verpackt sein Ergebnis in ein Result: Der Rückgabewert wird zu einem Erfolg, jede ausgelöste Exception zu einem Fehler. Ein try/catch ist nicht erforderlich.

Grundlegende Verwendung

Übergeben Sie eine Lambda-Funktion; der letzte Ausdruck ist der Erfolgswert.

fun main() {
    val r = runCatching { 10 / 2 }
    println(r.isSuccess)
    println(r.getOrNull())
}

Einen ausgelösten Fehler abfangen

Wenn der Block eine Exception auslöst, speichert runCatching die Exception, statt sie weiterzugeben.

fun main() {
    val r = runCatching { 10 / 0 }
    println(r.isFailure)
    println(r.exceptionOrNull()?.message)
}

Riskantes Parsen wrappen

Eine häufige Verwendung besteht darin, Aufrufe zu wrappen, die eine Exception auslösen können, etwa beim Parsen, sodass der Fehler zu einem behandelbaren Wert wird.

fun main() {
    val good = runCatching { "42".toInt() }
    val bad = runCatching { "abc".toInt() }
    println(good.getOrNull())
    println(bad.getOrNull())
}

runCatching als Receiver

Sie können runCatching auf einem Receiver-Objekt aufrufen; innerhalb des Blocks verweist this auf dieses Objekt. Das ist nützlich, um Operationen auf einem Wert zu verketten.

fun main() {
    val text = "  99 "
    val r = text.runCatching { trim().toInt() }
    println(r.getOrNull())
}

Inline-Fehlerbehandlung

Kombinieren Sie runCatching mit getOrElse, um direkt an der Aufrufstelle einen Ersatzwert bereitzustellen.

fun main() {
    val n = runCatching { "oops".toInt() }.getOrElse { -1 }
    println(n)
}

fold für beide Zweige

fold behandelt Erfolg und Fehler in einem Aufruf und gibt aus beiden Zweigen einen einzelnen Wert zurück.

fun main() {
    val message = runCatching { "50".toInt() }.fold(
        onSuccess = { "got " + it },
        onFailure = { "error: " + it.message }
    )
    println(message)
}

try/catch refaktorieren

Wo Sie vielleicht ein try/catch schreiben würden, das einen Wert zurückgibt, ist runCatching prägnanter und bewahrt das Ergebnis als Daten.

fun safeDivide(a: Int, b: Int): Result<Int> =
    runCatching { a / b }

fun main() {
    println(safeDivide(8, 2).getOrNull())
    println(safeDivide(8, 0).exceptionOrNull()?.message)
}

Vorsicht bei zu weit gefasstem Abfangen

runCatching fängt alle Throwables ab, einschließlich solcher, die Sie möglicherweise nicht verschlucken möchten. Vermeiden Sie es, riesige Blöcke zu wrappen; halten Sie den abgefangenen Bereich klein und bewusst gewählt.

Transformationen verketten

Da runCatching ein Result liefert, können Sie direkt map oder recover daran verketten. Diese behandeln wir in der nächsten Lektion.

fun main() {
    val r = runCatching { "7".toInt() }.map { it * 10 }
    println(r.getOrNull())
}

Warum das hilfreich ist

runCatching verbindet Code, der Exceptions auslöst, mit der wertbasierten Welt von Result. So können Sie funktionale Fehlerbehandlung auch beim Aufruf von APIs verwenden, die Exceptions auslösen.

Kurzer Test

Testen Sie Ihr Verständnis von runCatching.

Zusammenfassung

Sie haben runCatching kennengelernt:

  • Verpackt das Ergebnis eines Blocks in ein Result
  • Wandelt ausgelöste Exceptions in Fehler um
  • Lässt sich mit getOrElse und fold kombinieren
  • Halten Sie abgefangene Bereiche klein

Als Nächstes: versiegelte Result-Hierarchien erstellen.

Häufig gestellte Fragen

Ist die Lektion „runCatching“ kostenlos?

Ja — der vollständige Text von „runCatching“ 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 „runCatching“?

Erfassen Sie Ausnahmen als Werte 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 2 von 4.

Wie lange dauert die Lektion „runCatching“?

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.

Alle Lektionen in diesem Kurs

  1. Der Result-Typ
  2. runCatching
  3. Versiegelte Result-Hierarchien
  4. Funktionale Fehlerbehandlung
← Zurück zu Kotlin Academy