Uvod v izjeme v Pythonu
V tem razdelku bodo obravnavane izjeme v Pythonu. Za začetek je potrebno razumeti, kaj so.
Pri pisanju katerega koli programa razvijalec implicitno predpostavlja, da bodo vsi uporabljeni programsko-tehnični mehanizmi delovali pravilno.
Vendar to ni vedno tako. Pri prenosu podatkov prek omrežja pride do prekinitve povezave in podatki pridejo do nas v nepravilni obliki, ali pa sploh ne pridejo. Pri pisanju datoteke se izkaže, da je prostor na trdem disku, namenjen nam, zmanjkal, in datoteke ni mogoče zapisati. Pri branju datoteke se izkaže, da takšna datoteka ne obstaja in nimamo od kod brati. Pri tiskanju podatkov na tiskalniku pride do pretrganja kabla, ki povezuje tiskalnik in računalnik.
Vse opisane situacije imajo skupno bistvo: pride do neke okvare, ki povzroči nemogočnost ali nesmiselnost zaključka načrtovane operacije.
Obstajajo tudi situacije, v katerih pride do neke napake, ki ni okvara. Na primer, vprašate uporabnika za njegov email, in on vnese email v nepravilni obliki. Jasno je, da naš program ne more nadaljevati z obdelavo emaila, ker je nepopravljiv. Vendar to vseeno ni izjema. Naš program lahko sam popravi situacijo: izpiše sporočilo o napaki in uporabnik ponovi svoj vnos.
Pravzaprav je razlika med okvaro in ne-okvaro precej nejasna. Dogodek, ki ga en program lahko razlaga kot izjemo, lahko drug program razlaga kot neko napako, s katero se lahko spopade.
Merilo je tukaj naslednje: če lahko ob pojavu težave vaš program nadaljuje z izvajanjem tega, za kar je namenjen, potem to ni izjema, če pa ne more - potem je, to je izjema.
Na primer, imamo program, ki mora vprašati uporabnika za email. Če je uporabnik vnesel email v nepravilni obliki - to ni okvara. To je pričakovana težava in naš program bo vpraševal uporabnika za email tolikokrat, dokler ga ne vnese pravilno.
Recimo, da mora naš program, ki sprašuje po emailu, ta pravilen email tudi poslati prek interneta. Ob tem se izkaže, da internet ne deluje. To je že težava: program nikakor ne more poslati podatkov prek interneta, če internet ne dela. Program lahko kljub temu nadaljuje svoje izvajanje: lahko izpiše informacijo o težavi, ponovi poskus pošiljanja čez nekaj časa, in tako naprej. Toda ta dejanja niso več povsem tista, za kar je bil program namenjen, saj osnovnega dejanja - pošiljanja emaila program ne bo mogel opraviti.
Iz tega sledi, da je razlaga, katero vedenje se šteje za normalno, in katero za izjemno, pogosto odvisna od nalog, s katerimi se sooča programer.