Junior — Middle
Kotlin-də korutinlərdə səhvlərin idarə olunması üçün hansı yanaşmalar və metodlar istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Kotlin-də, korutinlərdə səhvləri idarə etmək üçün bir neçə yanaşma mövcuddur:
- try-catch korutin daxilində — ən sadə səhv idarəetmə üsulu. Siz
launchvə yaasyncdaxilindəki kodutry-catchblokuna sala bilərsiniz.
launch {
try {
// istisna ata biləcək kod
} catch (e: Exception) {
// səhv idarəetməsi
}
}
- CoroutineExceptionHandler — xüsusi bir idarəedicidir ki, korutina kontekstinə ötürülə bilər. Bu,
launchilə başlatılan korutinlərdə idarə olunmamış istisnaları tutar.
val handler = CoroutineExceptionHandler { _, exception ->
println("Yekun $exception")
}
GlobalScope.launch(handler) {
throw RuntimeException("Xəta")
}
- async/await ilə səhvlərin idarə olunması —
asyncistifadə edildikdə, istisnalar dərhal atılmır, əvəzinəawait()çağırıldıqda atılır. Ona görə də,await()-itry-catch-a salmaq lazımdır.
val deferred = async {
// kod
throw Exception("Xəta")
}
try {
deferred.await()
} catch (e: Exception) {
// idarəetmə
}
- SupervisorJob və SupervisorScope — uşaqlar korutinlərinin səhvlərini izolyasiya etməyə imkan verir, beləliklə, bir səhv bütün valideyn scope-un ləğv olunmamasını təmin edir.
Bu səbəbdən, metod seçimi kontekstdən və korutina növündən (launch və ya async) asılıdır.