JavaScript'te İstisnai Durumlara Giriş
Şimdi JavaScript'teki istisnai durumları ele alacağız. Başlangıç olarak, herhangi bir programlama dili için genel olarak istisnai durum örneklerinin yer aldığı bir giriş yapacağım, ardından JavaScript'te durumun nasıl olduğunu anlayacağız.
Programlarımızı yazarken, kullandığımız tüm yazılımsal-teknik mekanizmaların doğru çalışacağını örtük olarak varsayarız.
Ancak bu her zaman böyle değildir. Veri ağ üzerinden iletilirken bağlantı kopması yaşanabilir ve veriler hatalı bir şekilde gelir ya da hiç gelmez. Bir dosya yazılırken, sabit diskte ayrılan alanın dolduğu ve dosyanın yazılamadığı ortaya çıkabilir. Bir dosya okunurken, böyle bir dosyanın olmadığı ve okunacak bir kaynak bulunmadığı anlaşılabilir. Bir yazıcıya veri yazdırılırken, yazıcıyı bilgisayara bağlayan kabloda kopma meydana gelebilir.
Tüm bu tanımlanan durumlar ortak bir öze sahiptir: planlanan işlemin tamamlanmasını imkansız veya anlamsız hale getiren bir arıza meydana gelir.
Ayrıca, arıza olmayan bir hata durumunun yaşandığı durumlar da vardır. Örneğin, kullanıcıdan email adresini sorarsınız, ve o da email'i hatalı bir biçimde girer. Açıktır ki, programımız email'i işlemeye devam edemez, çünkü geçerli değildir. Ancak, yine de bu - bir istisnai durum değildir. Programımız durumu kendi başına düzeltebilir: hata mesajı gösterir ve kullanıcı girişini tekrarlar.
Aslında bir arıza ile arıza olmayan durum arasındaki fark oldukça belirsizdir. Bir programın istisnai bir durum olarak yorumlayabileceği bir olay, başka bir program üstesinden gelebileceği bir hata olarak yorumlayabilir.
Buradaki kriter şudur: Bir sorun ortaya çıktığında programınız, yapmak için tasarlandığı işi yapmaya devam edebiliyorsa, bu bir istisnai durum değildir, eğer edemiyorsa - o zaman evet, bu bir istisnadır.
Örneğin, kullanıcının email adresini soran bir programımız var. Eğer kullanıcı email'i hatalı biçimde girdiyse - bu bir arıza değildir. Bu beklenen bir problemdir ve programımız kullanıcıya email'i doğru girene kadar kaç kez soracağını soracaktır.
Diyelim ki, email'i soran programımız, aynı zamanda bu doğru email'i internet üzerinden göndermelidir. Bu sırada, internetin çalışmadığı ortaya çıkıyor. İşte bu artık bir problemdir: program, internet çalışmıyorsa verileri internet üzerinden göndermeyi hiçbir şekilde başaramaz. Program, yine de yürütülmesine devam edebilir: sorun hakkında bilgi çıktısı verebilir, gönderme girişimini bir süre sonra tekrarlayabilir, vb. Ancak bu eylemler artık programın tasarlandığı şeyin tam olarak karşılığı değildir, çünkü temel eylem - email gönderme işlemi program tarafından yapılamayacaktır.
Bir durumun istisnai olup olmaması, çoğu zaman programlama diline bağlıdır. Birçok dilde, eğer sıfıra bölme işlemi meydana gelirse - bu bir istisna olarak kabul edilir (çünkü sıfıra bölmek mümkün değildir), ancak JavaScript - kabul etmez (JavaScript'te sıfıra bölmek mümkündür).