Išimčių perėmimas JavaScript
Išimčiams perimti naudojama
konstrukcija try-catch. Ji turi
tokią sintaksę:
try {
// kodas
} catch (error) {
// klaidos apdorojimas
}
Bloke try reikia talpinti kodą,
kuris gali turėti išimtį. Jei
vykdant šį kodą atsirastų
išskirtinė situacija, tai mūsų scenarijus ne
nukris su klaida konsolėje, o pradės vykdytis
bloko catch kodas.
Šiame bloke mes turime kažkaip adekvačiai
reaguoti į klaidą. Pavyzdžiui,
jei mes norėjome išsiųsti kokius nors duomenis
per internetą ir internetas neveikia,
bloke catch mes galime kažkaip susidoroti
su situacija: galima, pavyzdžiui, išduoti pranešimą
vartotojui, o galima po kurio laiko
pabandyti išsiųsti duomenis dar kartą - staiga
internetas jau veikia.
Jei vykdant bloką try jokių
išskirtinių situacijų neatsirado, tai
naudingas kodas tiesiog vyks, o kodas iš
bloko catch - ne.
Pavyzdžiui pabandykime išanalizuoti JSON ir jo netinkamumo atveju išvesti į ekraną pranešimą apie tai:
try {
let data = JSON.parse('{1,2,3,4,5}');
} catch (error) {
alert('neįmanoma atlikti JSON analizės operacijos');
}
Pateiktas kodas, kuris įrašo tam tikrą eilutę į vietinę saugyklą:
let str = 'kažkokia eilutė';
localStorage.setItem('key', str);
Apvalkalkite šį kodą į konstrukciją try-catch.
Bloke catch išveskite pranešimą apie
saugyklos perpildymą. Patikrinkite savo
kodo veikimą su eilute, kurios dydis mažesnis nei 5
MB ir su eilute, kurios dydis didesnis.
Pateiktas JSON, kurio viduje saugomas masyvas.
Jei šis JSON korektiškas, tai išveskite elemento
masyvo kaip sąrašą ul. Jei
JSON nekorektiškas, išveskite į ekraną pranešimą
apie tai, kad puslapyje įvyko klaida.