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.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!