Увод у изузетне ситуације у Пајтону
У овом одељку ће се разматрати изузетне ситуације у Пајтону. За почетак треба разумети шта оне представљају.
Приликом писања било којег програма, програмер имплицитно очекује да сви коришћени програмско-технички механизми ће радити исправно.
То, међутим, није увек случај. Приликом преноса података преко мреже долази до прекида везе и подаци стижу до нас у неисправном облику, или уопште не стижу. Приликом уписа датотеке испоставља се да је додељено место на тврдом диску потрошено, и датотека не може да се упише. Приликом читања датотеке испоставља се да таква датотека не постоји и немамо одакле да читамо. Приликом штампања података на штампачу долази до прекида кабла који повезује штампач и рачунар.
Све описане ситуације имају заједничку суштину: дешава се одређени квар, који доводи до немогућности или бесмислености завршетка планиране операције.
Постоје такође ситуације, у којима се дешава одређена грешка, која није квар. На пример, питате корисника за његов имејл, а он уноси имејл у неисправном формату. Јасно је да наш програм не може наставити да обрађује имејл, пошто је он неисправан. Али, ипак ово - није изузетна ситуација. Наш програм може сам да исправи ситуацију: он ће приказати поруку о грешци и корисник ће поновити свој унос.
Заправо разлика између квара и не квара је прилично нејасна. Догађај, који један програм може да тумачи као изузетну ситуацију, други програм може да тумачи као одређену грешку, са којом она може да се избори.
Критеријум је следећи: ако приликом настанка проблема ваш програм може да настави да извршава оно за шта је намењен, онда то није изузетна ситуација, а ако не може - онда да, то је изузетак.
На пример, имамо програм који треба да пита корисника за имејл. Ако корисник унесе имејл у неисправном формату - то није квар. То је очекивани проблем и наш програм ће питати корисника за имејл онолико пута колико је потребно, док он не унесе исправан.
Нека наш програм, који пита за имејл, треба такође да пошаље тај исправан имејл преко интернета. Притом се испоставља да интернет не ради. Ево већ проблем: програм никако неће моћи да пошаље податке преко интернета, ако интернет не ради. Програм, ипак, може да настави своје извршавање: он може да прикаже информацију о проблему, понови покушај слања после одређеног времена, и тако даље. Али те радње већ нису сасвим оно за шта је програм био намењен, јер основна радња - слање имејла програм неће моћи да уради.
Исходя из чега, веома често тумачење које понашање ће се сматрати нормалним, а које изузетним зависи од задатака који стоје пред програмером.