Sobes.tech
Junior — Middle

Asinxron korutinlarda xatoliklarni qanday boshqarish mumkin?

sobes.tech AI

AIdan javob

Kotlin tilida, korutinlarda xatoliklarni boshqarish uchun, korutinada o'z ichida try-catch bloklarini ishlatish yoki CoroutineExceptionHandler kabi maxsus tuzilmalarni qo'llash mumkin.

Korutinada try-catch bilan misol:

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

Agar korutina launch orqali boshlatilgan bo'lsa, ishlov berilmagan xatoliklar CoroutineExceptionHandler ga o'tkaziladi:

val handler = CoroutineExceptionHandler { _, exception ->
    println("Boshqarilgan xato: ${exception.message}")
}

GlobalScope.launch(handler) {
    throw RuntimeException("Korutina xatosi")
}

Shu tarzda, asinxron kodda xatoliklarni moslashuvchan tarzda boshqarish mumkin.