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:
let 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:
let 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.
Sukurkite pakankamai didelio dydžio eilutę ir pabandykite ją įrašyti į vietinę saugyklą. Įsitikinkite, kad konsolėje bus klaida.
Pabandykite išanalizuoti neteisingą JSON. Įsitikinkite, kad konsolėje bus klaida.