Uvod u izuzetne situacije u Pythonu
U ovom odeljku će se razmatrati izuzetne situacije u Pythonu. Za početak, potrebno je razumeti šta one predstavljaju.
Prilikom pisanja bilo kog programa, programer implicitno računa na to da će svi korišćeni programsko-tehnički mehanizmi raditi ispravno.
Međutim, to nije uvek tako. Prilikom prenosa podataka preko mreže dolazi do prekida veze i podaci nam stižu u neispravnom obliku, ili uopšte ne stignu. Prilikom upisivanja fajla ispostavi se da je alocirano mesto na hard disku potrošeno, i fajl se ne može upisati. Prilikom čitanja fajla ispostavi se da takav fajl ne postoji i nemamo odakle da čitamo. Prilikom štampanja podataka na štampaču dolazi do prekida kabla koji povezuje štampač i računar.
Sve opisane situacije imaju zajedničku suštinu: dolazi do nekog kvara, koji dovodí do nemogućnosti ili besmislenosti završetka planirane operacije.
Postoje takođe situacije u kojima se događa neka greška, koja nije kvar. Na primer, vi pitate korisnika za njegov email, i on unese email u neispravnom formatu. Jasno je da naš program ne može nastaviti da obrađuje email, pošto je on neispravan. Ali, ipak, ovo nije izuzetna situacija. Naš program može sam da ispravi situaciju: on će prikazati poruku o grešci i korisnik će ponoviti svoj unos.
Zapravo, razlika između kvara i ne kvara je prilično nejasna. Događaj koji jedan program može tumačiti kao izuzetnu situaciju, drugi program može tumačiti kao neku grešku, sa kojom on može da se izbori.
Kriterijum je sledeći: ako prilikom pojave problema vaš program može nastaviti da izvršava ono za šta je namenjen, onda to nije izuzetna situacija, a ako ne može - onda jeste, to je izuzetak.
Na primer, imamo program koji treba da pita korisnika za email. Ako je korisnik uneo email u neispravnom formatu - to nije kvar. Ovo je očekivani problem i naš program će pitati korisnika za email onoliko puta, dok on ne unese ispravno.
Neka naš program, koji pita za email, takođe treba da pošalje ovaj ispravan email preko interneta. Pri tome se ispostavi, da internet ne radi. Ovo je već problem: program ne može na nikakav način da pošalje podatke preko interneta, ako internet ne radi. Program, ipak, može nastaviti svoje izvršavanje: on može prikazati informaciju o problemu, ponoviti pokušaj slanja nakon nekog vremena, i tako dalje. Ali ove akcije već nisu sasvim ono za šta je program bio namenjen, pošto osnovna akcija - slanje email-a, program neće moći da izvrši.
Iz toga, vrlo često tumačenje koje ponašanje će se smatrati normalnim, a koje izuzetnim zavisi od zadataka koji stoje pred programerom.