JavaScript-də Yaranan Veziyyetlerin Növləri
JavaScript-də istisnaların yarandığı veziyyetlər çox azdır. Birincisi, sadəcə onların yarana biləcəyi yer çox az olduğu üçün.
Ikincisi, dilin özü "bağışlayıcı" xarakter daşıdığı üçün: o, bir çox şeyə göz yumur, məsələn, sıfıra bölməyə və ya düzgün olmayan HTML koduna. Hətta yükləmək istədiyiniz şəkil üçün səhv yolu göstərsəniz belə, JavaScript bunu da bağışlayır və istisna hesab etmir.
Lakin, istisnai veziyyətlər mövcuddur. Biz JavaScript-də istisnalarla işləməyi öyrənmək üçün ən sadə iki nümunəni nəzərdən keçirəcəyik.
Ilk istisna, düzgün olmayan JSON-u ayrışdırmaq istədikdə yaranır:
let data = JSON.parse('{1,2,3,4,5}'); // bu json düzgün deyil
Ikinci istisna isə, saytımız üçün ayrılmış lokal anbar dolduqda (5 meqabaytdan çox) yaranır. Gəlin belə bir istisnanı süni şəkildə yaradaq:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // 5 mb-dan çox sətir yaradırıq
str += '+';
}
localStorage.setItem('key', str); // anbara yazmağa çalışırıq
JavaScript bu kimi istisnai veziyyətlərə necə reaksiya verir? O, sadəcə konsola xəta çıxarır və skriptin sonrakı icrasını dayandırır.
Proqramçılar kimi bizim vəzifəmiz, belə bir veziyyəti yaxalamaq və onunla elə məşğul olmaqdır ki, proqramın tamamilə işini dayandırmasının qarşısını alaq. Bunun üçün növbəti dərslərdə nəzərdən keçirəcəyimiz xüsusi try-catch konstruksiyası mövcuddur.
Kifayət qədər böyük ölçülü sətir yaradın və onu lokal anbara yazmağa çalışın. Konsolda xəta olacağına əmin olun.
Düzgün olmayan JSON-u ayrışdırmağa çalışın. Konsolda xəta olacağına əmin olun.