Sobes.tech
Junior — Middle

Coroutines ile çalışırken hangi istisna işleme yaklaşımları uygulanır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin Coroutines kullanırken istisnaları işlemek için aşağıdaki yaklaşımlar uygulanır:

  1. try-catch coroutine içinde — en basit istisna işleme yöntemidir:
launch {
    try {
        // istisna oluşturabilecek kod
    } catch (e: Exception) {
        // istisna işleme
    }
}
  1. CoroutineExceptionHandler — özel bir işleyici olup, coroutine bağlamına geçirilerek işlenmeyen istisnaların küresel olarak ele alınmasını sağlar:
val handler = CoroutineExceptionHandler { _, exception ->
    println("Yakalandı $exception")
}

val job = GlobalScope.launch(handler) {
    throw RuntimeException("Hata")
}
  1. Yapılandırılmış eşzamanlılık — alt coroutine'lerdeki istisnalar ebeveynleri iptal edebilir, bu nedenle hiyerarşiyi doğru kurmak ve hataları uygun seviyede işlemek önemlidir.

  2. supervisorScope ve SupervisorJob — alt coroutine'lerdeki hataları izole etmeye olanak tanır, böylece bir hata diğerlerini iptal etmez.

Bu nedenle, yaklaşım seçimi uygulamadaki hata işleme bağlamına ve gereksinimlere bağlıdır.