JavaScript Hataları – try ve catch ve finaly örnekleri

javascript try catch throw ve finally

javascript try catch throw ve finally ifadeleri ile kod bloğunda oluşan duruma göre daha anlaşılabilir hata mesajları oluşturabiliriz. Geliştirmelerimiz esnasında bazen kodlar da farklı hatalar ile karşılaşabiliriz. Bu hatalar tahmin edebildiğimiz bazen de tahmin edemediğimiz durumlarda oluşabilir . Bu sebeple özel oluşturulmuş hata kodlarını kullanmak hem hata ayıklamamız (debug) hem de kullanıcıya bilgi vermek açısından önemlidir.

  • Try, bir kod bloğu içerisinde kodlarımızı çalıştırmamızı sağlar ve burada oluşan durumlara göre catch , throw ve finally ifadeleri kullanılır..
  • Catch, hatayı yakalamamızı sağlar.
  • Throw, özel hatalar oluşturmamızı sağlayacaktır .
  • Finally, sonuçtan bağımsız olarak, dene ve yakala sonra kodu çalıştırmanıza izin verir.

Yapı aşağıdaki şekildedir;

try {    
   //çalıştırılacak olan kod bloğudur         
 } 
catch {     
   //hatanın yakalandığı ve hata oluştuğu zaman yapılması istenenler bu blog içerisinde yapılmaktadır.
 }    
finally {     
  // Bu blog içerisinde hata olsada olmasa da çalıştırılması istenen kod blogudur. 
}
try {
  test("Welcome guest!");
}
catch(err) {
  console.log(err.message);
}
//çıktı olarak test is not defined şeklinde bir hata mesajını konsola yazdıracaktır.

Sizlerinde gördüğü gibi yukarıdaki kod’u çalıştırdığımız zaman bir hata mesajı aldık ve catch blogu içerisinde yakaladık . Catch ile yakaladıktan sonra konsola bunu yazdırdık .

Javascript THROWS ile hata mesajları oluşturalım . 

Throw ile özelleştirilmiş yani kafanıza göre hata mesajları oluşturabileceğiniz kod blogu olduğunu söylemiştim . Burada throw ile oluşturacağın hata mesajları STRING , BOOLEAN , NUMBER ya da OBJECT türünde olabilir.

Javascript throws da dönecek hata tipleri Runtime ya da Syntax hataları olacaktır .

Runtime Error : Bu hata türü kod bloğunun çalışması esnasında yanlış bir değişkenin çağırılması veya yanlış bir fonksiyonun kullanımından kaynaklanabilir.
Syntax Error : Kodu yazarken bir yazım hatası yaptıysanız bu hatalar syntax error olarak yani yazım hatası olarak nitelendirilir.

Yazım şekli (syntax) 

try {   
  // try ve throw ifadelerinin çalıştırılacağı blok; 
} catch(error) {
   // catch içerisinde yapılmasını istediğiniz kod blogu 
}
Not: throw çalıştığı zaman bloktan çıkılır ve catch bloğuna gider. Bu sebepten dolayı throw ifadesinin altına yazacağınız kodlar çalışmayacaktır .

Aşağıdaki try catch ve throw örneğine bakalım;

var sayi = 40;
try {
    if(sayi > 50) {
        console.log('Başarılı');
    }
    else {
        // tanımladığımız hata mesajı
        throw new Error('Sayı kucuk');
    }
    // throw çalıştığı için aşağıdaki kod çalıştırılmaz.
    console.log('merhaba');
}
catch(error) {
    console.log('sayı yakalandı'); 
    console.log('Hata: ' + error);  
}

Örneğimizi açıklayacak olursak hatayı yakamak için throw ifadesini try blogu içerisinde kullandık. Ve throw ifadesi catch kod bloğuna yönlendirdi ve hata mesajını konsole yazdırdı. Ancak orada dikkat edilmesi gereken bir unsur daha var throw ifadesi çalıştıktan sonra console.log(‘merhaba’) çalışmamıştır . Çünkü daha önce söylediğim gibi hata yakalandıktan sonra catch bloğuna yönlendirilir ve hata mesajı yeniden oluşturulur.

Yukarıdaki hata mesajlarına yani kendi oluşturduğumuz hata mesajları yerine built-in yani dahili hata mesajlarını da kullanabiliriz.

  1. TypeError
  2. SyntaxError
  3. ReferenceError
  4. EvalError
  5. InternalError
  6. RangeError
Örnek : throw new ReferenceError('this is reference error');

javascript Finally ile her koşulda kodlarımızı çalıştıralım

javascript try catch ile kod blogunu çalıştırıp hata oluşması durumunda yakalamayı öğrendik . Ancak hatanın oluşup oluşmadığına bakılmaksızın her koşulda çalışmasını istediğimiz kod olması durumunda bunu finally içerisinde kullanmalıyız . Bunun için şu şekilde bir örnek kullanabiliriz.

const sayi1 = 100;
const sayi2 = 'deneme';

try {
     console.log(sayi1/sayi2);
     console.log(deneme);
}
catch(error) {
    console.log('Hata Yakalandı'); 
    console.log('Hata Mesajı : ' + error);  
}
finally {
     console.log('Finally blogundaki kod hata oluşsa bile çalışır.');
}

Javascript try catch throw ve finally ile ilgili olarak örneklerimizi arttırabiliriz.

Not

Yorum Ekle