Sobes.tech
Junior — Middle

Aké prístupy a metódy sa používajú na spracovanie chýb v Kotlin korutinách?

sobes.tech AI

Odpoveď od AI

V Kotlinu existuje niekoľko prístupov k spracovaniu chýb v korutinách:

  1. try-catch vo vnútri korutiny — najjednoduchší spôsob spracovania výnimiek. Môžete obaliť kód v launch alebo async blok do try-catch.
launch {
    try {
        // kód, ktorý môže vyvolať výnimku
    } catch (e: Exception) {
        // spracovanie chyby
    }
}
  1. CoroutineExceptionHandler — špeciálny handler, ktorý možno odovzdať do kontextu korutiny. Zachytáva neobslúžené výnimky v korutinách spustených cez launch.
val handler = CoroutineExceptionHandler { _, exception ->
    println("Chytené $exception")
}

GlobalScope.launch(handler) {
    throw RuntimeException("Chyba")
}
  1. Spracovanie chýb v async/await — pri použití async sa výnimky nevyhadzujú okamžite, ale pri volaní await(). Preto je potrebné obaliť await() do try-catch.
val deferred = async {
    // kód
    throw Exception("Chyba")
}

try {
    deferred.await()
} catch (e: Exception) {
    // spracovanie
}
  1. SupervisorJob a SupervisorScope — umožňujú izolovať chyby v deťoch korutín, aby jedna chyba nezrušila celý rodičovský scope.

Výber metódy závisí od kontextu a typu korutiny (launch alebo async).