Junior — Middle
Hogyan valósítható meg a kivételek kezelése aszinkron korutinákban?
sobes.tech MI
Válasz az MI-től
Kotlinban a korutinokban kivételeket try-catch blokkokkal lehet kezelni a korutinon belül vagy speciális szerkezetek, például a CoroutineExceptionHandler alkalmazásával.
Példa try-catch használatára a korutinon belül:
launch {
try {
val result = someSuspendFunction()
println(result)
} catch (e: Exception) {
println("Hiba: ${e.message}")
}
}
Ha a korutina a launch segítségével indul, a nem kezelt kivételek átadódnak a CoroutineExceptionHandler-nek:
val handler = CoroutineExceptionHandler { _, exception ->
println("Kezelt kivétel: ${exception.message}")
}
GlobalScope.launch(handler) {
throw RuntimeException("Hiba a korutinában")
}
Így rugalmasan kezelheti a hibákat az aszinkron kódban.