Junior — Middle
Как да реализираме обработката на изключения в асинхронните корутини?
sobes.tech AI
Отговор от AI
В Kotlin за обработка на изключения в корутините можете да използвате блокове try-catch вътре в самата корутина или да прилагате специални конструкции като CoroutineExceptionHandler.
Пример с try-catch вътре в корутината:
launch {
try {
val result = someSuspendFunction()
println(result)
} catch (e: Exception) {
println("Грешка: ${e.message}")
}
}
Ако корутината е стартирана чрез launch, неуправляемите изключения се предават към CoroutineExceptionHandler:
val handler = CoroutineExceptionHandler { _, exception ->
println("Обработено изключение: ${exception.message}")
}
GlobalScope.launch(handler) {
throw RuntimeException("Грешка в корутината")
}
По този начин можете гъвкаво да управлявате грешките в асинхронния код.