⊗pyPmExcInr 74 of 129 menu

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

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

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

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

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

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

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

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

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

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

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

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