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("Корутинда хата")
}
Шулай итеп, асинхрон кодта хаталарны җиңел идарә итәргә мөмкин.