CodeBlanks Logo Icon CodeBlanks

Özet - İstisnalar

try/catch, finally ve try ifadesini birleştirerek bir banka hesap sınıfı yazarsın.

Özet - İstisnalar

Bu grupta try/catch ile hata yakalamayı, throw ile hata fırlatmayı, finally ile temizlik yapmayı, try ifadesini ve özel exception sınıflarını öğrendin.

Şimdi hepsini birleştiren küçük bir görevle bilgini sınamak gerekiyor: özel bir hata sınıfı tanımla, fırlat, yakala ve son olarak temizlik yap. Bu, gerçek bir hata yönetimi akışının küçük bir örneğidir.

Uygulama Özel hata ile tam akış kur

MyError(message: String) : Exception(message) sınıfını tanımla. fun load() yaz; içinde throw MyError("Yükleme başarısız") fırlat. main içinde try/catch/finally kur; hatada e.message'i yazdır, finally içinde println("Bitti") çağır.

Başlangıç kodu

Main.kt
fun main() {
    // Bir hata sınıfı tanımla, bir fonksiyonda fırlat, try-catch-finally ile sar
}

Örnek çözüm

Main.kt
class MyError(message: String) : Exception(message)

fun load() {
    throw MyError("Yükleme başarısız")
}

fun main() {
    try {
        load()
    } catch (e: MyError) {
        println(e.message)
    } finally {
        println("Bitti")
    }
}

Beklenen çıktı

Yükleme başarısız
Bitti

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi doğrudur?

  • finally her zaman çalışır Doğru cevap
  • throw hatayı yakalar
  • catch hata fırlatır
  • try hata yakalar

Açıklama: finally hata olsa da olmasa da çalışır.

2 Araç ve amacı eşleştir

Kavram Anlamı
try Deneme
catch Yakalama
finally Temizlik
throw Fırlatma

3 Boşluğu doldur: catch yaz

Soru
try {
    load()
} ____ (e: MyError) {
    println(e.message)
}
Cevap
try {
    load()
} catch (e: MyError) {
    println(e.message)
}

Açıklama: catch ile MyError yakalanır.

Başlangıç bölümündeki tüm dersler