JavaScript Exceptions Handling “try, catch, throw, finally”

JavaScript’te hata yönetimi; try, catch, throw ve finally anahtar kelimelerinin kullanımı.

Sevinc Cay
3 min readSep 29, 2021

Programlarken kusursuzca yazmaya çalıştığımız kodlarda bazen hatalar olabilmektedir. Bu bizim kodlama esnasında yaptığımız typo veya syntax hataları olabileceği gibi, kullanıcı kaynaklı ya da beklenmeyen server cevaplarından veya birçok farklı nedenden dolayı da oluşabilir.

JavaScript loosely-typed(gevşek) yazılmış bir dildir. Derleme zamanı hatası vermez. Bu nedenle, bazen tanımsız bir değişkene erişmek veya tanımsız bir işlevi çağırmak vb. için bir çalışma zamanı hatası alırsınız. JavaScript, Java veya C# gibi diğer dillere benzer şekilde try-catch-finally bloğunu kullanarak ‘runtime errors’ dediğimiz çalışma zamanı hatalarını yakalamak için hata işleme mekanizması sağlar.

Kullanım şekline gelecek olursak syntax aşağıdaki şekildedir;

try : kodları çalışma zamanında test etmek için kullanılır.

catch : çalışma zamanında hata çıkması durumunda bu hataları yakalamak için kullanılır.

catch bloğunda yazılmış olan (e) parametresi oluşacak istisnayı taşıyacak olan değişken adıdır. Buraya herhangi bir isim verilebilir fakat yaygın olarak ‘exception’ ın ilk harfi olan ‘e’ ya da 'error’ü temsilen ‘err’ gibi ifadelerle isimlendirilir.

try{...},catch(e),finally{...} bloğunun çalışması aşağıdaki gibidir:

1. Önce try{...}içerisindeki kodlar çalıştırılır.
2. Eğer hata yoksa catch(e) görmezden gelinir ve çalışma try’ın sonuna ulaşır. finally{...} içerisindeki kod ile sona erer.
3. Eğer hata varsa, try’ın çalışması durdurulur ve catch(e) çalışmaya başlar.(Buradaki (e)değişkeni hatanın neden meydana geldiğine dair detayları tutan bir objedir.) Sonrasında yine finally{...} içerisindeki kod ile sona erer.

Örnekteki kod bloğunda hello() adında bir fonksiyon olmadığı için catch bloğu içerisine düşüyor ve catch bloğundaki console.error(e) fonksiyonu ile konsolda ‘hello is not defined’ hatası gösteriliyor.

throw: özel bir hata oluşturmak için kullanılır.

Normalde kod çalışırken bir hata oluştuğunda, JavaScript durur ve bir hata mesajı oluşturur. Bu duruma JavaScript bir istisna atar (bir hata atar) olarak adlandırılır. JavaScript aslında iki özelliğe sahip bir Error nesnesi oluşturacaktır: name ve message.

JavaScript bir çok standart hataya sahiptir: Error, SyntaxError, ReferenceError, TypeError vs. Bunları kullanarak da hata objesi yaratmak mümkündür.

throw ile birlikte try…catch ifadesini kullanırsak, program akışını kontrol edebilir ve özel hata mesajları oluşturabiliriz.

Yukarıdaki örnekte ‘dogumTarihi’ adında bir input nesnesi oluşturalım ve butona tıkladığımızda eğer ‘dogumTarihi’ adındaki input nesnemize bir şey girilmediyse throw içindeki kod çalışarak aşağıdaki şekilde exception alınacaktır.

finally: sonuçtan bağımsız olarak try…catch'den sonra kodu sona erdirmek istediğimiz durumlarda kullanılır.

Yukarıdaki örnekte de input içerisine girilen veri her ne olursa olsun, try ve catchbloğundan gelen sonuçtan bağımsız olarak finallyiçerisindeki kod çalışacak, yani her veri girişinden sonra input içerisindeki value sıfırlanacaktır.

Thanks for reading!✌

--

--