Sobes.tech
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("Грешка в корутината")
}

По този начин можете гъвкаво да управлявате грешките в асинхронния код.