Sobes.tech
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:

  1. 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
    }
}
  1. 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")
}
  1. 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.