JavaScript-də İstisnalara Giriş
İndi biz JavaScript-də istisna vəziyyətlərini nəzərdən keçirəcəyik. Əvvəlcə ümumi olaraq istənilən proqramlaşdırma dili üçün istisna vəziyyətlərinə dair nümunələrin olacağı bir giriş edəcəm, sonra isə JavaScript-də vəziyyətin necə olduğunu anlayacıq.
Biz proqramlarımızı yazarkən, gizli şəkildə istifadə etdiyimiz bütün proqram-teknik mexanizmlərin düzgün işləyəcəyinə güvənirik.
Lakin bu, həmişə belə olmur. Şəbəkə üzərindən məlumat ötürülərkən əlaqə kəsildiyi üçün məlumatlar bizə səhv şəkildə çatır, ya da ümumiyyətlə çatmır. Fayl yazılarkən məlum olur ki, sərt diskdə bizim üçün ayrılmış yer bitib və fayl yazıla bilmir. Fayl oxunarkən məlum olur ki, belə bir fayl yoxdur və bizim oxumaq üçün heç bir yerimiz yoxdur. Məlumatlar printerdə çap edilərkən printeri kompüterə birləşdirən kabel qopur.
Təsvir olunan bütün vəziyyətlərin ortaq mahiyyəti var: baş verən müəyyən bir nasazlıq, planlaşdırılan əməliyyatın tamamlanmasının qeyri-mümkün və ya mənasız olmasına səbəb olur.
Nasazlıq olmayan, lakin müəyyən bir xətanın baş verdiyi vəziyyətlər də olur. Məsələn, siz istifadəçidən onun e-mail ünvanını soruşursunuz və o, e-mail-i səhv formatda daxil edir. Aydındır ki, proqramımız e-mail-i emal etməyə davam edə bilməz, çünki o, düzgün deyil. Lakin buna baxmayaraq, bu - istisna vəziyyəti deyil. Proqramımız vəziyyəti özü düzəldə bilər: o, xəta barədə mesaj çıxadar və istifadəçi öz daxil etməsini təkrarlayar.
Əslində, nasazlıqla nasazlıq olmaması arasındakı fərq olduqca bulanıqdır. Bir proqramın istisna vəziyyəti kimi şərh edə biləcəyi bir hadisəni, başqa bir proqram özünün aradan qaldıra biləcəyi bir xəta kimi şərh edə bilər.
Burada meyar aşağıdakı kimidir: əgər problem yarananda sizin proqramınız nə üçün nəzərdə tutulubsa onu yerinə yetirməyə davam edə bilirsə, onda bu istisna deyil, əks halda isə bəli, bu istisnadır.
Məsələn, bizim istifadəçidən e-mail ünvanını soruşan bir proqramımız var. Əgər istifadəçi e-mail-i səhv formatda daxil edibsə - bu nasazlıq deyil. Bu gözlənilən problemdir və proqramımız istifadəçidən e-mail-i düzgün daxil edənə qədər onu neçə dəfə soruşacaq.
Tutaq ki, e-mail soruşan proqramımız həm də bu düzgün e-mail-i internet vasitəsilə göndərməlidir. Bu zaman məlum olur ki, internet işləmir. Budur artıq problem: internet işləmirsə, proqram məlumatları internet vasitəsilə heç cür göndərə bilməz. Buna baxmayaraq, proqram öz icrasını davam etdirə bilər: o, problem barədə məlumat çıxada bilər, bir müddət sonra göndərmə cəhdini təkrarlaya bilər və s. Lakin bu hərəkətlər artıq tam olaraq proqramın nə üçün nəzərdə tutulduğu deyil, çünki əsas hərəkət - e-mail göndərməni proqram edə bilməyəcək.
Çox vaxt, bir şeyin istisna vəziyyəti olub-olmaması proqramlaşdırma dilindən asılıdır. Bir çox dildə, əgər sıfıra bölmə baş verərsə - bu istisna sayılır (çünki sıfıra bölmək olmaz), lakin JavaScript-də - sayılmır (JavaScript-də sıfıra bölmək olar).