CodeBlanks Logo Icon CodeBlanks

Yaygın hata türleri

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

TypeError, RangeError ve ReferenceError gibi yaygın hata türlerini tanırsın.

Yaygın hata türleri

JavaScript'te en sık karşılaşılan hata türleri TypeError, RangeError, ReferenceError ve SyntaxError'dur. Her biri farklı bir programlama hatasını işaret eder ve catch bloğunda e.name ile ayırt edilebilir.

Örneğin null.foo yazdığında TypeError, tanımsız bir değişken kullandığında ReferenceError alırsın. Array(-1) gibi geçersiz bir uzunluk RangeError verir. SyntaxError ise kodun sözdiziminde hata olduğunda fırlatılır ve genellikle çalıştırılmadan yakalanır.

Hata türlerini ayırt etmek

Hata türlerini ayırt etmek catch bloğunda farklı işlemler yapmanı sağlar. instanceof operatörü veya e.name karşılaştırması ile türü kontrol edebilirsin. Örneğin if (e instanceof TypeError) yalnızca tür hatalarını yakalar.

Bu yöntem özellikle kullanıcıya gösterilecek mesajı hatanın türüne göre özelleştirmek istediğinde yararlıdır. Bir ReferenceError için "Tanımsız değişken", bir RangeError için "Geçersiz aralık" gibi özelleştirilmiş mesajlar gösterebilirsin. Böylece uygulama daha anlaşılır hata geri bildirimi sunar.

Uygulama Hata türüne göre mesaj göster

handleError adında bir fonksiyon tanımla. e parametresi alsın. Gövdede if (e instanceof TypeError) koşuluyla kontrol et; sağlanırsa console.error("Tür hatası:", e.message) çağrısı yapsın. else if (e instanceof RangeError) koşuluyla da console.error("Aralık hatası:", e.message) çağrısı yapsın. Sonra bu fonksiyonu try { null.foo; } catch (e) { handleError(e); } şeklinde çağır.

Örnek çözümü göster
function handleError(e) {
  if (e instanceof TypeError) {
    console.error("Tür hatası:", e.message);
  } else if (e instanceof RangeError) {
    console.error("Aralık hatası:", e.message);
  }
}
try {
  null.foo;
} catch (e) {
  handleError(e);
}

Kendini test et

  1. null.foo çağrısı ne tür bir hata verir?

    null.foo;
    • ReferenceError
    • TypeError
    • RangeError
    • SyntaxError
    Cevabı göster

    TypeError — Doğru. null üzerinde özellik erişimi TypeError verir.

  2. Hata türünü tanımla

    try {
      console.log(unknownVar);
    } catch (e) {
      if (e instanceof ____) {
        console.log("Tanımsız değişken");
      }
    }
    Cevabı göster
    try {
      console.log(unknownVar);
    } catch (e) {
      if (e instanceof ReferenceError) {
        console.log("Tanımsız değişken");
      }
    }
  3. Hata türlerini nedenine eşleştir

    TypeError
    Yanlış tip kullanımı
    RangeError
    Geçersiz aralık
    ReferenceError
    Tanımsız değişken
    SyntaxError
    Sözdizimi hatası

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