JavaScript
Yaygın hata türleri
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
-
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.
-
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");
}
}
-
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ı
Sıradaki ders: Özet - Hatalar