CoroutineExceptionHandler
- Kotlin kursu
- İleri seviye
- Ders 5/83
- 5 dk
CoroutineExceptionHandler ile hata yönetimi öğrenirsin.
CoroutineExceptionHandler nedir?
CoroutineExceptionHandler, bir coroutine içinde yakalanmamış istisnaları yakalayan bir yapıdır. Bir CoroutineContext parçasıdır ve launch çağrısına bağlam olarak verilir.
İmza: val handler = CoroutineExceptionHandler { _, throwable -> println(throwable.message) }. İlk parametre context, ikincisi fırlatılan Throwable'dır. Handler yalnızca kök coroutine'lerde devreye girer; async ile başlatılanlarda çalışmaz. Handler içinde kurtarma mantığı yazılır; loglama, bildirim veya yedek veri döndürme gibi.
Handler kullanımı
Handler'ı launch'a bağlam olarak verirsin: launch(handler) { throw RuntimeException("Hata") }. Fırlatılan istisna handler'a gider ve throwable parametresi olarak görünür.
Handler içinde istisnayı loglayabilir, kullanıcıya bildirim gösterebilir veya yedek bir akış başlatabilirsin. Handler çalıştıktan sonra coroutine zaten çökmüş sayılır; iptal durumu korunur. Bu yüzden handler içinde yeni bir coroutine başlatmak yerine, hatayı kaydedip dışarıdan yeniden denemek daha güvenli olur.
Uygulama Handler tanımla ve yazdır
val handler = CoroutineExceptionHandler { _, throwable -> println("Hata yakalandı") } tanımla. main içinde println("Hazır") yazdır. Handler'ın varlığını göster yeter; fırlatma yapmak zorunda değilsin.
Başlangıç kodu
// Handler tanımı
// buraya yaz
fun main() = runBlocking {
}Örnek çözüm
fun main() = runBlocking {
val handler = CoroutineExceptionHandler { _, throwable ->
println("Hata yakalandı")
}
println("Hazır")
}Beklenen çıktı
Hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Handler parametresini tamamla
val handler = CoroutineExceptionHandler { _, ____ -> println("Hata") }
val handler = CoroutineExceptionHandler { _, throwable -> println("Hata") }
Açıklama: İkinci parametre throwable olarak adlandırılır.
2 CoroutineExceptionHandler ne işe yarar?
- Yakalanmayan istisnaları yakalar Doğru cevap
- Coroutine başlatır
- Thread oluşturur
- Dispatcher seçer
Açıklama: Handler yakalanmayan istisnaları yakalar.
3 Handler parçalarını eşle
| Kavram | Anlamı |
|---|---|
CoroutineExceptionHandler |
İstisna yakalar |
throwable |
Fırlatılan istisna |
context |
İlk parametre |
launch |
Bağlam alır |