Видове възникващи ситуации в JavaScript
В JavaScript има много малко ситуации, в които възникват изключения. Първо, просто защото има много малко места, където могат да възникнат.
Второ, защото самият език е "всепрощаващ": той преглежда много неща, например, деление на нула или некоректен HTML код. Дори и да посочите грешен път до изображението, което възнамерявате да заредите, JavaScript ще ви прости и дори това няма да счита за изключение.
Въпреки това, има изключителни ситуации. Ние ще разгледаме двете най-прости и на техния пример ще изучим работата с изключения в JavaScript.
Първото изключение възниква, когато искаме да разпарсим некоректен JSON:
let data = JSON.parse('{1,2,3,4,5}'); // този json е некоректен
А второто изключение възниква, когато локалното
хранилище, отделено за нашия сайт, се препълни
(повече от 5 мегабайта). Нека изкуствено
предизвикаме такова изключение:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // формираме низ от над 5 мб
str += '+';
}
localStorage.setItem('key', str); // опитваме се да запишем в хранилището
Как JavaScript реагира на такива изключителни ситуации? Той просто изхвърля грешка в конзолата и прекратява по-нататъшното изпълнение на скрипта.
Нашата задача, като програмисти, е
да уловим такава ситуация и по някакъв начин да
се справим с нея, без да позволим на програмата напълно
да прекрати изпълнението си. За това
съществува специална конструкция try-catch,
която ще разгледаме в следващите уроци.
Създайте низ с достатъчно голям размер и се опитайте да го запишете в локалното хранилище. Уверете се, че в конзолата ще има грешка.
Опитайте се да разпарсите некоректен JSON. Уверете се, че в конзолата ще има грешка.