Typy výnimkových situácií v JavaScripte
V JavaScripte je veľmi málo situácií, v ktorých nastávajú výnimky. Po prvé, jednoducho preto, že je veľmi málo miest, kde k nim môže dôjsť.
Po druhé, pretože samotný jazyk je "veľmi zhovievavý": na veľa vecí prihliada, napríklad na delenie nulou alebo na nekorektný HTML kód. Aj keď zadáte nesprávnu cestu k obrázku, ktorý sa chystáte načítať, JavaScript vám to odpustí a nepovažuje to za výnimku.
Avšak, výnimkové situácie existujú. My si rozoberieme dve najjednoduchšie a na ich príklade naštudujeme prácu s výnimkami v JavaScripte.
Prvá výnimka nastáva, keď chceme parsovať nekorektný JSON:
let data = JSON.parse('{1,2,3,4,5}'); // tento json je nekorektný
A druhá výnimka nastáva, keď sa lokálne
úložisko pridelené pre našu stránku preplní
(viac ako 5 megabajtov). Umelo
vyvolajme takúto výnimku:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // vytvoríme reťazec väčší ako 5 MB
str += '+';
}
localStorage.setItem('key', str); // pokúsime sa zapísať do úložiska
Ako JavaScript reaguje na takéto výnimkové situácie? Jednoducho vypíše chybu do konzoly a zastaví ďalšie vykonávanie skriptu.
Našou úlohou ako programátorov je
zachytiť takúto situáciu a nejako
sa s ňou vyrovnať, bez toho, aby sa program úplne
zastavil. Na to
existuje špeciálna konštrukcia try-catch,
ktorú si rozoberieme v nasledujúcich lekciách.
Vytvorte reťazec dostatočne veľkej veľkosti a pokúste sa ho zapísať do lokálneho úložiska. Presvedčte sa o tom, že v konzole bude chyba.
Pokúste sa sparsovať nekorektný JSON. Presvedčte sa o tom, že v konzole bude chyba.