Junior — Middle
Wie erfolgt die Fehlerbehandlung im Rahmen von CoroutineScope in Kotlin?
sobes.tech KI
Antwort von AI
Fehlerbehandlung in CoroutineScope in Kotlin erfolgt durch Ausnahme-Mechanismen und spezielle Fehlerbehandler.
Hauptmethoden:
- try-catch innerhalb der Coroutine Der Code der Coroutine kann in einen try-catch-Block eingeschlossen werden, um Ausnahmen lokal zu behandeln.
launch {
try {
// Code, der eine Ausnahme auslösen kann
} catch (e: Exception) {
// Fehlerbehandlung
}
}
- CoroutineExceptionHandler Dies ist ein spezieller Handler, der im Coroutine-Kontext übergeben werden kann, um unbehandelte Ausnahmen in Coroutines, die mit launch gestartet wurden (nicht mit async), global zu behandeln.
val handler = CoroutineExceptionHandler { _, exception ->
println("Gefangen $exception")
}
val scope = CoroutineScope(Dispatchers.Main + handler)
scope.launch {
throw RuntimeException("Fehler")
}
- Fehlerbehandlung bei async Bei async werden Ausnahmen nicht sofort ausgelöst, sondern beim Aufruf von await(), daher muss die Fehlerbehandlung dort erfolgen.
val deferred = async {
throw RuntimeException("Fehler")
}
try {
deferred.await()
} catch (e: Exception) {
// Behandlung
}
Daher hängt die Wahl der Methode vom Coroutine-Typ und dem gewünschten Fehlerbehandlungsniveau ab.