Preprečevanje različnih tipov izjem v Pythonu
V isti kodi bo morda potrebno preprečiti različne tipe izjem.
Recimo, da moramo ujeti izjemo pri deljenju z nič. Pri takšni napaki se pojavi izjema:
ZeroDivisionError: division by zero
Da jo ujamemo, je treba ime izjeme
zapisati v bloku except:
try:
print(1 / 0)
except ZeroDivisionError:
print('error: do not divide by zero')
Prav tako imamo seznam:
lst = [1, 2, 3]
Če v bloku try napišemo kodo z drugo
morebitno napako, na primer z izpisom
neobstoječega elementa, bo izjema,
ki je ni ujeli v bloku except, šla
naprej in se izpisala v konzolo. Zaradi tega
se bo delovanje kode ustavilo:
lst = [1, 2, 3]
try:
print(lst[4]) # izpiše IndexError: list index out of range
except ZeroDivisionError:
print('error: do not divide by zero')
Za rešitev takšne situacije je treba v vsakem bloku navesti ime ustreznega tipa izjem. Dodajmo naši kodi izjemo za manjkajoči element:
try:
print(lst[4])
except ZeroDivisionError:
print('error: do not divide by zero')
except IndexError:
print('error: elem does not exist')
Podana je naslednja koda:
txt = '2'
res1 = txt + 3
res2 = txt1
Napišite kodo za preprečitev predstavljenih
izjem v spremenljivkah res1 in res2.