throw ile hata fırlatma
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
-
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.
-
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"); } } -
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