JavaScript try catch
Hataları yakalamak ve hataları yönetmek için kullanılan try catch finally anahtar kelimelerinin kullanımı, JavaScript hataları ile ilgili bilgiler yer alıyor.
JavaScript try anahtar kelimesi kod bloğundaki kodları çalışma zamanında test etmek için kullanılır.
JavaScript catch anahtar kelimesi çalışma zaman hatası sonucu oluşan hataları ekrana yazdırmak için kullanılır.
JavaScript throw anahtar kelimesi özel hata oluşturmayı sağlar.
JavaScript finally anahtar kelimesi hata oluşması veya oluşmaması durumunda çalışacak kodları yazdırmak için kullanılır.
Hataları yakalama
JavaScript ile çalışırken kodlama hataları, yanlış girdi hataları ve çalışma zamanında önlenemeyen hatalar olabilir.
Örnekte tanımlı olmayan uyariver() fonksiyonu yazılmıştır.
<script>
try {
uyariver("Merhaba JavaScript");
}
catch(e) {
alert(e);
}
</script>
JavaScript uyariver fonksiyonu tanımlı olmadığı için hatayı yakalar ve catch kod bloğu içerisindeki kodları çalıştırır.
try catch
JavaScript try anahtar kelimesi kod bloğundaki kodları çalışma zamanında test etmek için kullanılır.
JavaScript catch anahtar kelimesi çalışma zaman hatası sonucu oluşan hataları ekrana yazdırmak için kullanılır.
JavaScript hatalarını try ve catch ile hataları kontrol edebiliriz.
try {
Kodları test etmek için çalıştırılacak kod bloğu
}
catch(e) {
Hata oluşursa çalıştırılacak kod bloğu
}
throw
JavaScript kodları çalıştırılırken hata meydana geldiğinde JavaScript durur ve throw hata mesajı üretir.
JavaScript hata oluştuğunda name ve message özelliklerine sahip Error nesnesi oluşturacaktır.
JavaScript throw anahtar kelimesi ile özel hata oluşturabiliriz.
JavaScript hata mesajları metin, sayı, mantık ve nesne türünden olabilir.
throw "Sayı büyük"; // metin veri türünde uyarı
throw 500; // sayı veri türünde uyarı
JavaScript throw anahtar kelimesi ile özel hata oluşturup try ve catch bloğunda çeşitli hatalara karşı özel hata mesajları üretilebilir.
<script>
var yas = prompt();
try {
if(yas == "") throw "Boş değer";
if(isNaN(yas)) throw "Sayı değil";
yas = Number(yas);
if(yas < 18) throw "Yaşın 18'den küçük";
if(yas > 65) throw "Yaşın 65'den büyük"
}
catch(hata) {
alert(hata);
}
</script>
finally
JavaScript finally anahtar kelimesi sonuç ne olursa olsun çalıştırılacak kodların yazılmasını sağlar.
<script>
var yas = prompt();
try {
if(yas == "") throw "Boş değer";
if(isNaN(yas)) throw "Sayı değil";
yas = Number(yas);
if(yas < 18) throw "Yaşın 18'den küçük";
if(yas > 65) throw "Yaşın 65'den büyük"
}
catch(hata) {
alert(hata);
}
finally {
alert("Burası her zaman çalışacak");
}
</script>
Error nesnesi
JavaScript hata oluştuğunda hata bilgisini name ve message olarak saklayan Error nesnesini kullanır.
Özellik | Açıklaması |
---|---|
name | Hata adını saklar |
message | Hata mesajını saklar |
JavaScript hataları
JavaScript içerisinde çeşitli hata türleri mevcuttur.
Hata Adı | Açıklaması |
---|---|
RangeError | Sayı sınırı hatası |
ReferenceError | Referans hatası |
SyntaxError | Sözdizimi hatası |
TypeError | Tür hatası |
URIError | encodeURI() fonksiyonu hatası |
RangeError
JavaScript sayı sınırı aşılırsa RangeError hatası üretir.
<script>
var sayi = 0;
try {
sayi.toPrecision(1000);
}
catch(hata) {
alert("Hata Türü : " + hata.name);
alert("Hata Mesajı : " + hata.message)
}
</script>
ReferenceError
JavaScript oluşturulmamış bir değişken kullanılırsa ReferenceError hatası üretir.
<script>
var sayi = 0;
try {
sayi = xSayisi + 3;
alert(sayi);
}
catch(hata) {
alert("Hata Türü : " + hata.name);
alert("Hata Mesajı : " + hata.message)
}
</script>
SyntaxError
JavaScript kodları yanlış ve eksik yazılırsa SyntaxError hatası üretir.
<script>
try {
eval("alert('Merhaba)");
}
catch(hata) {
alert("Hata Türü : " + hata.name);
alert("Hata Mesajı : " + hata.message)
}
</script>
TypeError
JavaScript bir veri türü fonksiyonu farklı bir veri türünde kullanılırsa TypeError hatası üretir.
<script>
var adi = "Yusuf";
try {
adi.toPrecision(100);
}
catch(hata) {
alert("Hata Türü : " + hata.name);
alert("Hata Mesajı : " + hata.message)
}
</script>
URIError
JavaScript URI fonksiyonlarında geçersiz karakter kullanılırsa URIError hatası üretir.
<script>
try {
decodeURI("%");
}
catch(hata) {
alert("Hata Türü : " + hata.name);
alert("Hata Mesajı : " + hata.message)
}
</script>
Bazı tarayıcılarda özel hata mesajları olabilir.
Ancak tüm tarayıcılarda kullanılmadığından kullanılması tavsiye edilmez.
JavaScript Derslerine buradan ulaşabilirsiniz…
Hayırlı günler dilerim.