Назад к вопросам
Junior — Middle
76
Каким образом реализовать обработку исключений в асинхронных корутинах?
Компании, где спрашивали
Dion
Ответ от нейросети
sobes.tech 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("Ошибка в корутине")
}
Таким образом, можно гибко управлять ошибками в асинхронном коде.