Junior — Middle
Kā īstenot izņēmumu apstrādi asinhronajās korutīnās?
sobes.tech AI
Atbilde no AI
Kotlinā, korutīnās izņēmumu apstrādei var izmantot try-catch blokus pašā korutīnā vai piemērot īpašas konstrukcijas, piemēram, CoroutineExceptionHandler.
Piemērs ar try-catch korutīnā:
launch {
try {
val result = someSuspendFunction()
println(result)
} catch (e: Exception) {
println("Kļūda: ${e.message}")
}
}
Ja korutīna tiek palaista ar launch, neapstrādātās izņēmumi tiek nodoti CoroutineExceptionHandler:
val handler = CoroutineExceptionHandler { _, exception ->
println("Apstrādāta izņēmuma ziņa: ${exception.message}")
}
GlobalScope.launch(handler) {
throw RuntimeException("Kļūda korutīnā")
}
Tādējādi, elastīgi pārvaldīt kļūdas asinhronajā kodā.