Junior — Middle
Ako sa vykonáva spracovanie chýb v rámci CoroutineScope v Kotlin?
sobes.tech AI
Odpoveď od AI
Spracovanie chýb v CoroutineScope v Kotlin sa vykonáva pomocou mechanizmov výnimiek a špeciálnych spracovateľov chýb.
Hlavné spôsoby:
- try-catch vo vnútri korutiny Kód korutiny môžete obaliť do bloku try-catch na lokálne spracovanie výnimiek.
launch {
try {
// kód, ktorý môže vyvolať výnimku
} catch (e: Exception) {
// spracovanie chyby
}
}
- CoroutineExceptionHandler Ide o špeciálneho spracovateľa, ktorého možno odovzdať do kontextu korutiny na globálne spracovanie neopracovaných výnimiek v korutinách spustených cez launch (ale nie async).
val handler = CoroutineExceptionHandler { _, exception ->
println("Chytené $exception")
}
val scope = CoroutineScope(Dispatchers.Main + handler)
scope.launch {
throw RuntimeException("Chyba")
}
- Spracovanie chýb v async V prípade async sa výnimky nevyhadzujú okamžite, ale pri volaní await(), takže spracovanie chýb by malo byť tam.
val deferred = async {
throw RuntimeException("Chyba")
}
try {
deferred.await()
} catch (e: Exception) {
// spracovanie
}
Takže voľba metódy závisí od typu korutiny a požadovanej úrovne spracovania chýb.