Junior — Middle
Cum se realizează gestionarea erorilor în cadrul CoroutineScope în Kotlin?
sobes.tech AI
Răspuns de la AI
Gestionarea erorilor în CoroutineScope în Kotlin se realizează prin mecanisme de excepții și handle-uri speciale de erori.
Metodele principale:
- try-catch în interiorul coroutinei Poți înveli codul coroutinei într-un bloc try-catch pentru a trata local excepțiile.
launch {
try {
// cod care poate arunca o excepție
} catch (e: Exception) {
// tratarea erorii
}
}
- CoroutineExceptionHandler Este un handle special care poate fi transmis în contextul coroutinei pentru tratarea globală a excepțiilor nepreluate în coroutinele lansate cu launch (dar nu cu async).
val handler = CoroutineExceptionHandler { _, exception ->
println("Capturat $exception")
}
val scope = CoroutineScope(Dispatchers.Main + handler)
scope.launch {
throw RuntimeException("Eroare")
}
- Tratamentul erorilor în async În cazul async, excepțiile nu sunt aruncate imediat, ci la apelarea await(), deci tratarea erorilor trebuie făcută acolo.
val deferred = async {
throw RuntimeException("Eroare")
}
try {
deferred.await()
} catch (e: Exception) {
// tratare
}
Astfel, alegerea metodei depinde de tipul coroutinei și nivelul dorit de tratare a erorilor.