Izjema je dogodek, do katerega pride med izvajanjem programa in ki pokvari normalen potek programskih ukazov. V splošnem, če Python naleti na tako situacijo, v kateri se ne znajde, sproži izjemo. Izjema v Pythonu predstavlja napako.
Ko Python sproži izjemo, jo mora takoj ali primerno obravnavati, ali pa se program zaključi.
Če imamo v programu sumljivo kodo, ki je sprožila izjemo, lahko program zaščitimo s stavkom oblike try: <blok sumljive kode>.
Za takim stavkom imamoše stavek oblike except: <stavek>, ki mu sledi blok stavkov, ki nastali problem reši čimbolj primerno.
Preden gremo na konkreten primer, velja povedati še to:
try: fh = open("datoteka.txt", "w") fh.write("Preskusam pisati v datoteko!!") except IOError: print ("Napaka: Napaka: v datoteko ne morem pisati") else: print ("Pisanje v datoteko je uspelo") fh.close() |
Verjetno bi dobili nasledni izpis: Pisanje v datoteko je uspelo
Poiščimo to datoteko v našem računalniku in jo zaščitimo, da bo samo za branje. Program ponovimo in skušajmo spet pisati v to datoteko. Sedaj bi seveda dobili izpis: Napaka: v datoteko ne morem pisati
Seveda ima Python vrsto vnaprej predvidenih (vgrajenih) izjem. Ena bolj tipičnih je, ko poskušamo nek izraz deliti z 0. Ali pa da želimo nasloviti nek element (morda z indeksom), ki ga ni.
Poglejmo si primer, ko želimo izraz deliti z 0:
Dobili bi tak izpis: ZeroDivisionError: integer division or modulo by zero on line 3