Junior — Middle
Πώς υλοποιείται η διαχείριση εξαιρέσεων σε ασύγχρονες κορουτίνες;
sobes.tech AI
Απάντηση από AI
Στην Kotlin, για τη διαχείριση εξαιρέσεων σε coroutines, μπορείτε να χρησιμοποιήσετε μπλοκ try-catch μέσα στην ίδια τη coroutine ή να εφαρμόσετε ειδικές κατασκευές όπως το CoroutineExceptionHandler.
Παράδειγμα με try-catch μέσα στη coroutine:
launch {
try {
val result = someSuspendFunction()
println(result)
} catch (e: Exception) {
println("Σφάλμα: ${e.message}")
}
}
Αν η coroutine ξεκινάει μέσω του launch, οι μη διαχειριζόμενες εξαιρέσεις μεταβιβάζονται στο CoroutineExceptionHandler:
val handler = CoroutineExceptionHandler { _, exception ->
println("Διαχειρισμένη εξαίρεση: ${exception.message}")
}
GlobalScope.launch(handler) {
throw RuntimeException("Σφάλμα στη coroutine")
}
Έτσι, μπορείτε να διαχειριστείτε ευέλικτα τα σφάλματα στον ασύγχρονο κώδικα.