JavaScript kylančių situacijų rūšys

JavaScript yra labai mažai situacijų, kuriose kyla išimtys. Pirma, vien dėl to, kad yra labai mažai vietų joms atsirasti.

Antra, todėl, kad pati kalba yra "atlaidi": ji daug ką leidžia praleisti, pavyzdžiui, dalybą iš nulio ar neteisingą HTML kodą. Net jei nurodysite neteisingą kelią iki vaizdo, kurį ketinate įkelti, JavaScript jums tai atleis ir nelaikys išimtimi.

Tačiau, išimtinės situacijos egzistuoja. Mes išnagrinėsime dvi paprasčiausias ir jų pavyzdžiu išnagrinėsime darbą su išimtimis JavaScript.

Pirmoji išimtis kyla, kai norime išanalizuoti neteisingą JSON:

javascriptlet data = JSON.parse('{1,2,3,4,5}'); // šis JSON yra neteisingas

O antroji išimtis kyla, kai vietinė saugykla, skirta mūsų svetainei, perpildoma (daugiau nei 5 megabaitai). Sukurkime tokią išimtį dirbtinai:

javascriptlet str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // formuojame daugiau nei 5 MB eilutę
  str += '+';
}

localStorage.setItem('key', str); // bandome įrašyti į saugyklą

Kaip JavaScript reaguoja į tokias išimtines situacijas? Jis tiesiog išveda klaidą į konsolę ir nutraukia tolesnį scenarijaus vykdymą.

Mūsų, kaip programuotojų, užduotis yra sugauti tokią situaciją ir kažkaip susidoroti su ja, neleidžiant programai visiškai nutraukti savo vykdymo. Tam egzistuoja speciali konstrukcija try-catch, kurią nagrinėsime kitose pamokose.

Задание 1

Sukurkite pakankamai didelio dydžio eilutę ir pabandykite ją įrašyti į vietinę saugyklą. Įsitikinkite, kad konsolėje bus klaida.

Задание 2

Pabandykite išanalizuoti neteisingą JSON. Įsitikinkite, kad konsolėje bus klaida.