Vrste izuzetnih situacija u JavaScript-u
U JavaScript-u ima veoma malo situacija u kojima nastaju izuzeci. Prvo, prosto zato što ima veoma malo mesta za njihovu pojavu.
Drugo, zato što je sam jezik "sveopraštajući": on na mnoge stvari gleda kroz prste, na primer, na deljenje nulom ili na nekorektan HTML kod. Čak i ako navedete pogrešnu putanju do slike koju nameravate da učitajete, JavaScript će vam oprostiti i to i neće smatrati izuzetkom.
Međutim, izuzetne situacije postoje. Mi ćemo razložiti dve najjednostavnije i na njihovom primeru proučiti rad sa izuzecima u JavaScript-u.
Prvi izuzetak nastaje kada želimo da parsiramo nekorektan JSON:
let data = JSON.parse('{1,2,3,4,5}'); // ovaj JSON je nekorektan
A drugi izuzetak nastaje kada se lokalno
skladište, dodeljeno za naš sajt, prepuni
(više od 5 megabajta). Hajde da veštački
izazovemo takav izuzetak:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // formiramo string veći od 5 MB
str += '+';
}
localStorage.setItem('key', str); // pokušavamo da upišemo u skladište
Kako JavaScript reaguje na takve izuzetne situacije? On jednostavno ispaljuje grešku u konzolu i prekida dalje izvršavanje skripte.
Naš zadatak, kao programera, sastoji se u
tome da uhvatimo takvu situaciju i nekako
da se izborimo sa njom, ne dajući programu da potpuno
prekine svoje izvršavanje. Za ovo
postoje posebne konstrukcije try-catch,
koje ćemo razložiti u narednim lekcijama.
Kreirajte string dovoljno velike veličine i pokušajte da ga upišete u lokalno skladište. Uverite se u to, da će u konzoli biti greška.
Pokušajte da parsirate nekorektan JSON. Uverite se u to, da će u konzoli biti greška.