Izjeme (Exceptions)

Kaj je izjema?

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.

Rokovanje z izjemo

Č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:

Primer

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

Vgrajene izjeme

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