JavaScript'te Hatalarla Baş Etme

Bu dersimizde JavaScript'te hata denetimi konusuna değineceğiz. Birçok programlama dilinde olduğu gibi JavaScript'te de çalışma zamanı (runtime) hatalarını tespit edebilirsiniz.

try - catch Hata Yakalama Blokları

Hata olmasını düşündüğümüz kodları try alanına, hata yakalandığında çalışacak kodları ise catch alanına yazarız.

try {
// Hatalı olabilecek kodlar
}
catch {
// Hata yakalandığında çalışacak kodlar
}

Şeklinde bir algoritmaya sahiptir.

     
        <script>
            try {
                var a = 2;
                var b = a * c;
                alert(b);
            } catch (e) {
                alert("Kodlar hatalı!")
            } 
        </script>                                
    

Bu şekilde kodlarım olsun. Projemi çalıştırdığım zaman "Kodlar hatalı!" uyarısını alacağım; çünkü "c" adlı bir değişken tanımlamadım.

     
        <script>
            try {
                var a = 2;
                var b = a * c;
                alert(b);
            } catch (e) {
                alert(e.message)
            }
        </script>                                
    

Hata mesajımı şekildeki gibi düzenleyip message özelliği ile birlikte kullandığımda hatanın sebebini de öğrenebileceğim.

javascriptte hata yakalama

"c is not defined", "c tanımlı değil" anlamına gelmektedir.

try - catch - finally Hata Yakalama Blokları

try - catch ile aynı görevdedir. finally ise hatalı olsun ya da olmasın çalışacak kodları barındırır.

try {
// Hatalı olabilecek kodlar
}
catch {
// Hata yakalandığında çalışacak kodlar
}
finally {
// Hatalı olsun ya da olmasın çalışacak kodlar
}

Şeklinde bir algoritması vardır.

     
        <script>
            try {
                var a = 2;
                var b = a * c;
                alert(b);
            } catch (e) {
                alert(e.message)
            } finally {
                alert("Kodlarım hatalı olsa da bu yazıyı yazdırayım.")
            }
        </script>                                
    

Bir önceki kodlarıma finally'yi ekledim. Kodlarımı çalıştırdığımda hata mesajımı alacağım ve ardından finally bloğundaki kodlar çalışacak.

javascriptte hata yakalama

Hata mesajımı onayladıktan sonra karşıma bu şekilde bir bildirim penceresi gelecek.

throw Deyimi

Bu deyim sadece try bloğu içine yazılır. try bloğunda istisnaî bir hatayı yakalamak için kullanılır. Eğer hata yakalanırsa altındaki kodlar çalışmaz.

try {
// throw( )
// Hatalı olabilecek kodlar
}
catch {
// Hata yakalandığında çalışacak kodlar
}
finally {
// Hatalı olsun ya da olmasın çalışacak kodlar
}

Şeklinde bir algoritmaya sahiptir.

     
        <script>
            try {
                var a = prompt("ilk sayı:", "");
                var b = prompt("ikinci sayı:", "");
                if (isNaN(a) || isNaN(b)) {
                    throw (alert("Hata!"));
                }
                alert(a * b);
            } catch (e) {
                alert(e.message)
            } finally {
                alert("Çarpsa da çarpmasa da bunu yazdırırım.")
            }
        </script>                                
    

Şeklinde kodlarım olsun. Kullanıcı iki veri girecek ve ben bunları çarpmak istiyorum. Eğer girdiği değer string bir ifade ise throw'a düşecek. Değilse çarpım gerçekleşecek.

Kodlarımı çalıştırdığımda ilk olarak "2" ve "3" değerlerini giriyorum ve sonuç olarak "6" yanıtını alıyorum. Ardından finally'deki kodlarım çalışıyor.

Kodlarımı tekrar çalıştırıyorum. Bu sefer "2" ve "a" değerlerini giriyorum ve "Hata!" uyarısı ile karşılaşıyorum. Ardından finally'deki kodlarım tekrar çalışıyor. Dediğim gibi eğer kod throw'a düşerse altındaki kodlar çalışmaz. Bu şekilde çarpım sonucunu "NaN" (Not a Number) olarak görmüyorum.

Bu dersin videosunu 1080p HD kalitesinde izleyebilirsiniz.

Bu derslik de bu kadar. Tasarımcı arkadaşlarım bendenize sürekli "JavaScript bilmesen de olur. jQuery bilsen yeterli." telkinlerinde bulunuyorlar. Bu yüzden JavaScript derslerini burada bitiriyorum. Umarım temel düzeyde de olsa JavaScript'i öğrenebilmişsinizdir.

Buraya kadar derslere eksiksiz bir şekilde devam ettiyseniz ve yazılım alanında uzmanlaşmak istiyorsanız C# gibi bir programlama dilini öğrenmeye başladığınızda kodlar oldukça kolay gelecektir. Çünkü JavaScript ve C# oldukça benzer iki dildir.

Neyse... Lafı uzatmayayım. Sizi jQuery derslerine alayım. =)

jQuery derslerine geçmek için tıklayınız. >>>
Come to the Dark Site!