CodeBlanks Logo Icon CodeBlanks

throw ile hata fırlatma

JavaScript kursu · Başlangıç · Ders 118/133

throw ile kendi hatanı fırlatmayı ve ne zaman kullanılacağını öğrenirsin.

throw ile hata fırlatma

JavaScript'te throw anahtar kelimesi kendi hatanı fırlatmanı sağlar. Bir hata fırlatıldığında yürütme durur ve en yakın catch bloğuna atlar. throw'a bir Error nesnesi verebileceğin gibi bir dize de verebilirsin; ancak Error nesnesi daha bilgilendiricidir çünkü yığın izi (stack trace) taşır.

Örnek: throw new Error("Geçersiz değer"). Bu çağrı hemen bir hata yaratır ve catch yakalamazsa uygulama çöker. throw özellikle iş mantığı hatlarını belirtmek için kullanışlıdır: örneğin negatif bir yaş değeri geldiğinde hata fırlatıp işlemi durdurursun.

throw ne zaman kullanılır?

throw'u iş mantığı hatları için kullanırsın. Örneğin bir fonksiyona negatif bir yaş gelirse bu mantıklı değildir; bu durumda hata fırlatıp çağıranın catch ile yakalamasını beklersin.

Örnek: function setAge(age) { if (age < 0) throw new Error("Negatif yaş"); }. Burada throw çağrıldığında fonksiyondan çıkılır ve hata çağırana iletilir. Bu yöntem, sessizce hatalı veriyle devam etmekten daha güvenlidir; çünkü sorun daha erken fark edilir.

Uygulama throw ile negatif yaş kontrolü

setAge adında bir fonksiyon tanımla. age parametresi alsın. Gövdede if (age < 0) ile kontrol et; koşul sağlanınca throw new Error("Negatif yaş") çağrısı yapsın. Sonra bu fonksiyonu try bloğu içinde setAge(-5) şeklinde çağır; catch (e) bloğunda console.error(e.message) çağrısı yapsın.

Örnek çözümü göster
function setAge(age) {
  if (age < 0) {
    throw new Error("Negatif yaş");
  }
}
try {
  setAge(-5);
} catch (e) {
  console.error(e.message);
}

Kendini test et

  1. throw new Error("Negatif yaş") çağrısının etkisi nedir?

    throw new Error("Negatif yaş");
    • Sadece konsola uyarı yazar, kod devam eder
    • Değişkeni tanımsız yapar
    • throw satırını yok sayar ve devam eder
    • Kodu durdurur, catch yoksa uygulama çöker
    Cevabı göster

    Kodu durdurur, catch yoksa uygulama çöker — Doğru. throw kodu durdurur ve catch yakalamazsa uygulama çöker.

  2. throw ifadesini tamamla

    function checkAge(age) {
      if (age === null) {
        ____ new Error("Yaş gerekli");
      }
    }
    Cevabı göster
    function checkAge(age) {
      if (age === null) {
        throw new Error("Yaş gerekli");
      }
    }
  3. throw ifadelerini anlamına eşleştir

    throw new Error("X")
    Error nesnesi fırlatır
    throw "X"
    Dize fırlatır
    throw 42
    Sayı fırlatır
    throw; (yalnızca throw)
    SyntaxError verir

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