Sobes.tech
Junior — Middle

Asinxron korutinlərdə istisna idarəsini necə həyata keçirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin-də, korutinlərdə istisnaları idarə etmək üçün, korutin daxilində try-catch bloklarından istifadə edə bilərsiniz və ya CoroutineExceptionHandler kimi xüsusi quruluşları tətbiq edə bilərsiniz.

Korutin daxilində try-catch nümunəsi:

launch {
    try {
        val result = someSuspendFunction()
        println(result)
    } catch (e: Exception) {
        println("Xəta: ${e.message}")
    }
}

Əgər korutina launch ilə başlayıbsa, işlənməmiş istisnalar CoroutineExceptionHandler-ə ötürülür:

val handler = CoroutineExceptionHandler { _, exception ->
    println("İdarə olunan istisna: ${exception.message}")
}

GlobalScope.launch(handler) {
    throw RuntimeException("Korutina xətası")
}

Beləliklə, asinxron kodda xətaları elastik şəkildə idarə etmək mümkündür.