CodeBlanks Logo Icon CodeBlanks

Özel exception

Kotlin'de özel istisna sınıfı yazmayı öğrenirsin.

Özel exception: kendi hata sınıfın

Uygulamana özgü hata türleri için kendi sınıfını tanımlayabilirsin. Genel bir exception türünden miras alır; mesajı kurucuya verirsin.

class TaskError(message: String) : Exception(message)

throw TaskError("Görev bulunamadı")

Sınıf adı, hatanın nedenini açıkça anlatır. Exception yerine RuntimeException da seçebilirsin. Özel tür, hem yakalamayı hem de hata ayıklamayı kolaylaştırır.

Özel exception fırlatma ve yakalama

Tanımladığın sınıfı throw ile fırlatır, catch ile yakalarsın. Tür adı, hangi hatayı yakaladığını gösterir.

try {
    throw TaskError("Bulunamadı")
} catch (e: TaskError) {
    println(e.message)
}

catch (e: TaskError) yalnızca bu türü yakalar. Böylece farklı hata türleri için farklı yakalama blokları kurabilirsin. Bu, hata yönetimini düzenli ve anlamlı kılar.

Uygulama TaskError sınıfı tanımla

TaskError(message: String) : Exception(message) sınıfını tanımla. fun find(id: Int) yaz; içinde throw TaskError("Görev bulunamadı: $id") fırlat. main içinde find(99) çağır; TaskError yakala ve e.message'i yazdır.

Başlangıç kodu

Main.kt
fun main() {
    // Bir hata sınıfı tanımla, bir fonksiyonda fırlat, main'de yakala ve yazdır
}

Örnek çözüm

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

fun find(id: Int) {
    throw TaskError("Görev bulunamadı: $id")
}

fun main() {
    try {
        find(99)
    } catch (e: TaskError) {
        println(e.message)
    }
}

Beklenen çıktı

Görev bulunamadı: 99

Soru ve cevaplar

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

1 Boşluğu doldur: üst sınıf

Soru
class TaskError(message: String) : ____(message)
Cevap
class TaskError(message: String) : Exception(message)

Açıklama: Exception üst sınıf olarak kullanılır.

2 Özel exception neden tanımlanır?

  • Daha az bellek için
  • Daha az kod yazmak için
  • Hız artışı için
  • Daha anlamlı hata türleri için Doğru cevap

Açıklama: Uygulamaya özgü hata türleri daha anlamlıdır.

3 Parça ve rol eşleştir

Kavram Anlamı
class TaskError Sınıf tanımı
: Exception Üst sınıf
throw TaskError Fırlatma
catch (e: TaskError) Yakalama

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