JavaScript'te Hatalarla Baş Etme

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.

?

1

2

3

4

5

6

7

8

9

<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.

?

1

2

3

4

5

6

7

8

9

<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.

"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.

?

1

2

3

4

5

6

7

8

9

10

11

<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.

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.

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<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.

.

Henüz Yorum Yapılmamış, İlk Yorumu Siz Yapın

Yorum Yollayın