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("Хатои дар корутин")
}

Ин тариқ, шумо метавонед хатоҳоро дар коди асинхронӣ боэътимод идора кунед.