⊗jsSpExcET 138 of 294 menu

Видове възникващи ситуации в 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. Уверете се, че в конзолата ще има грешка.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне