CodeBlanks Logo Icon CodeBlanks

try/catch

try/catch ile hata yakalamayı öğrenirsin.

try/catch: hataları yakala

Bir kod parçası hata fırlatabilir; try bloğu bu kodu sarar, catch ise hatayı yakalar. Böylece program çökmeden devam eder.

try {
    val x = 10 / 0
} catch (e: ArithmeticException) {
    println("Hata: ${e.message}")
}

try içindeki kod hata verirse, kontrol catch'e geçer. Yakalanan nesne e değişkenine konur; e.message hata iletisini taşır. Uygun exception türünü yakalamak, beklenmedik hataları önler.

Özel exception türleri

Her hata türü farklı bir duruma işaret eder. En sık görülenler: ArithmeticException, NumberFormatException, NullPointerException, IndexOutOfBoundsException.

try {
    val n = "abc".toInt()
} catch (e: NumberFormatException) {
    println("Sayı değil")
}

Tür seçimi, hatayı doğru biçimde ele almak için önemlidir. Bilinmeyen bir hata türü için Exception yakalayabilirsin; ama özel türler daha net bilgi verir. Yanlış tür, hatayı kaçırmaya yol açar.

Uygulama Bölmeyi try/catch ile sar

try bloğu içinde val x = 10 / 0 yaz. ArithmeticException yakala ve println ile "Hata" yazdır.

Başlangıç kodu

Main.kt
fun main() {
    // Bir bölme işlemini try içine al; hatayı yakalayıp Hata yazdır
}

Örnek çözüm

Main.kt
fun main() {
    try {
        val x = 10 / 0
    } catch (e: ArithmeticException) {
        println("Hata")
    }
}

Beklenen çıktı

Hata

Soru ve cevaplar

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

1 catch bloğu ne yapar?

  • Hatayı fırlatır
  • Hatayı yok sayar zorunlu
  • Hatayı yineler
  • Hatayı yakalar Doğru cevap

Açıklama: catch, try içinde oluşan hatayı yakalar.

2 Boşluğu doldur: catch yaz

Soru
try {
    val x = 10 / 0
} ____ (e: ArithmeticException) {
    println("Hata")
}
Cevap
try {
    val x = 10 / 0
} catch (e: ArithmeticException) {
    println("Hata")
}

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

3 Exception ve senaryo eşleştir

Kavram Anlamı
ArithmeticException Bölme hatası
NumberFormatException Dönüşüm hatası
IndexOutOfBoundsException Dizi sınırı
NullPointerException Boş erişim

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