Išimčių perėmimas JavaScript

Išimčiams perimti naudojama konstrukcija try-catch. Ji turi tokią sintaksę:

javascripttry {
  // 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:

javascripttry {
  let data = JSON.parse('{1,2,3,4,5}');
} catch (error) {
  alert('neįmanoma atlikti JSON analizės operacijos');
}
Задание 1

Pateiktas kodas, kuris įrašo tam tikrą eilutę į vietinę saugyklą:

javascriptlet 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.

Задание 2

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.