Прихващане на изключения в JavaScript

За прихващане на изключения се използва конструкцията try-catch. Тя има следния синтаксис:

javascripttry {
  // код
} catch (error) {
  // обработка на грешката
}

В блока try трябва да се поставя код, който може да съдържа изключение. Ако внезапно при изпълнението на този код възникне изключителна ситуация, тогава нашият скрипт няма да се срине с грешка в конзолата, а ще започне да се изпълнява кодът на блока catch.

В този блок трябва по някакъв адекватен начин да реагираме на грешката. Например, ако се опитвахме да изпратим някакви данни през интернет и интернетът не работи, в блока catch можем да се справим по някакъв начин със ситуацията: може, например, да покажем съобщение на потребителя, а може след известно време да се опитаме да изпратим данните отново - вдруг интернетът вече работи.

Ако при изпълнението на блока try не са възникнали изключителни ситуации, тогава полезният код просто ще се изпълни, а кодът от блока catch - няма.

За пример нека се опитаме да парснем JSON и в случай, че е некорректен, да изведем на екрана съобщение за това:

javascripttry {
  let data = JSON.parse('{1,2,3,4,5}');
} catch (error) {
  alert('невъзможно е да се извърши операцията по парсване на JSON');
}
Задание 1

Даден е код, който записва някакъв низ в локалното хранилище:

javascriptlet str = 'някакъв низ';
localStorage.setItem('key', str);

Обърнете този код в конструкцията try-catch. В блока catch изведете съобщение за препълване на хранилището. Проверете работата на вашия код за низ с размер по-малък от 5 MB и за низ с по-голям размер.

Задание 2

Даден е JSON, вътре в който се съхранява масив. Ако този JSON е коректен, тогава изведете елементите на масива под формата на списък ul. Ако JSON не е коректен, изведете на екрана съобщение че на страницата е възникнала грешка.