Sobes.tech
Junior — Middle

როგორ განვახორციელოთ გამონაკლისების მართვა ასინქრონული კუროტინებში?

sobes.tech AI

პასუხი AI-სგან

Kotlin-да, korутиналарда изключенияләрне идарә итү өчен, корутинаның эчендә 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("Корутинда хата")
}

Шулай итеп, асинхрон кодта хаталарны җиңел идарә итәргә мөмкин.