CodeBlanks Logo Icon CodeBlanks

Hata yönetimi

try/catch ile geçersiz girdileri güvenle yakalarsın.

try/catch nedir?

Bazen bir işlem istisna (exception) fırlatabilir; örneğin sıfıra bölme, dosya bulunamaması veya sayı dönüştürme hatası. try/catch ile bu istisnaları yakalayıp programın çökmesini önleyebilirsin.

try {
    println(divide(10, 2))
} catch (e: ArithmeticException) {
    println("Sıfıra bölme")
}

try bloğu riskli işlemi çalıştırır; istisna olursa catch bloğu devreye girer.

finally nedir?

finally bloğu try/catch'ten sonra her durumda çalışır; ister istisna olsun, ister olmasın. Genellikle dosyaları kapatmak veya kaynakları serbest bırakmak için kullanılır.

Kotlin'de use fonksiyonu bu işi otomatik yapsa da, finally hala bilinmesi gereken bir araçtır. Hesap makinesinde doğrudan kullanmayacağız ama temelini bilmek önemli.

Uygulama try/catch ile divide çağrısı

Mevcut main'de println(divide(10, 2)) çağrısını try { ... } catch (e: ArithmeticException) { println("Sıfıra bölme") } içine al. Diğer tüm çağrılar korunsun.

Başlangıç kodu

Main.kt
fun add(a: Int, b: Int): Int {
    return a + b
}
fun subtract(a: Int, b: Int): Int {
    return a - b
}
fun multiply(a: Int, b: Int): Int {
    return a * b
}
fun divide(a: Int, b: Int): Int {
    if (b == 0) {
        return 0
    }
    return a / b
}
fun main() {
    println("Hesap makinesi")
    println(add(5, 3))
    println(subtract(5, 3))
    println(multiply(5, 3))
    println(divide(10, 2))
}

Örnek çözüm

Main.kt
fun add(a: Int, b: Int): Int {
    return a + b
}
fun subtract(a: Int, b: Int): Int {
    return a - b
}
fun multiply(a: Int, b: Int): Int {
    return a * b
}
fun divide(a: Int, b: Int): Int {
    if (b == 0) {
        return 0
    }
    return a / b
}
fun main() {
    println("Hesap makinesi")
    println(add(5, 3))
    println(subtract(5, 3))
    println(multiply(5, 3))
    try {
        println(divide(10, 2))
    } catch (e: ArithmeticException) {
        println("Sıfıra bölme")
    }
}

Beklenen çıktı

Hesap makinesi
8
2
15
5

Soru ve cevaplar

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

1 try/catch ne yapar?

  • Kodu derleyiciye gönderir
  • Hataları yakalar ve programın çökmesini önler Doğru cevap
  • Döngü başlatır
  • Değişken tanımlar

Açıklama: try/catch istisnaları yakalar ve çökmeyi önler.

2 catch bloğunu tamamla

Soru
try { println(divide(10, 0)) } ____ (e: ArithmeticException) { println("Sıfıra bölme") }
Cevap
try { println(divide(10, 0)) } catch (e: ArithmeticException) { println("Sıfıra bölme") }

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

3 İstisna kavramlarını eşleştir

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

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