⊗jsSpExcInr 137 of 294 menu

Въведение в изключителните ситуации в JavaScript

Сега ще разгледаме изключителните ситуации в JavaScript. Като начало ще направя едно въведение, в което ще има примери за изключителни ситуации като цяло за всички езици за програмиране, а след това ще разберем как стоят нещата в JavaScript.

Когато пишем нашите програми, ние имплицитно разчитаме на това, че всички програмно-технически механизми, използвани от нас, ще работят коректно.

Това обаче не винаги е така. При предаване на данни по мрежата възниква прекъсване на връзката и данните пристигат при нас в некоректен вид, или изобщо не пристигат. При запис на файл се оказва, че отделеното място на твърдия диск е свършило и файлът не може да бъде записан. При четене на файл се оказва, че такъв файл не съществува и няма откъде да четем. При отпечатване на данни на принтер възниква прекъсване на кабела, свързващ принтера и компютъра.

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

Има също ситуации, в които възниква някаква грешка, която не е срив. Например, питате потребителя за неговия email, и той въвежда email в некоректен формат. Ясно е, че нашата програма не може да продължи да обработва email, тъй като той не е коректен. Но, въпреки това, това не е изключителна ситуация. Нашата програма може сама да коригира ситуацията: тя ще изведе съобщение за грешка и потребителят ще повтори въвеждането си.

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

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

Например, имаме програма, която трябва да попита за email на потребителя. Ако потребителят е въвел email в некоректен формат - това не е срив. Това е очакван проблем и нашата програма ще пита потребителя за email толкова пъти, докато той не го въведе коректно.

Нека нашата програма, която пита за email, трябва също да изпрати този коректен email през интернет. При това се оказва, че интернетът не работи. Ето това вече е проблем: програмата по никакъв начин няма да може да изпрати данни през интернет, ако интернетът не работи. Програмата, въпреки това, може да продължи изпълнението си: тя може да изведе информация за проблема, да повтори опита за изпращане след известно време, и така нататък. Но тези действия вече не са точно това, за което програмата е била предназначена, тъй като основното действие - изпращане на email, програмата не може да направи.

Много често това, дали ситуацията е изключителна или не, зависи от езика за програмиране. В много езици, ако внезапно се случи деление на нула - това се счита за изключение (тъй как на нула не се дели), но в JavaScript - не се счита (в JavaScript на нула може да се дели).

Български
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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне