Preuzimanje različitih tipova izuzetaka u Pythonu
U istom kodu može biti potrebno preuzeti različite tipove izuzetaka.
Pretpostavimo da treba da uhvatimo izuzetak pri deljenju sa nulom. Pri ovakvoj grešci dolazi do izuzetka:
ZeroDivisionError: division by zero
Da bismo ga uhvatili, ime izuzetka treba
zapisati u bloku except:
try:
print(1 / 0)
except ZeroDivisionError:
print('greška: ne deli sa nulom')
Takođe, pretpostavimo da imamo listu:
lst = [1, 2, 3]
Ako postavimo u bloku try kod sa drugom
potencijalnom greškom, na primer, sa ispisom
ne postojećeg elementa, onda će izuzetak,
koji nije uhvaćen u bloku except, proći
dalje i ispisati se u konzolu. Zbog čega
će se rad koda zaustaviti:
lst = [1, 2, 3]
try:
print(lst[4]) # ispisuje IndexError: list index out of range
except ZeroDivisionError:
print('greška: ne deli sa nulom')
Da bismo rešili ovakvu situaciju, potrebno je da navedemo u svakom bloku ime odgovarajućeg tipa izuzetka. Dodajmo u naš kod izuzetak za nedostajući element:
try:
print(lst[4])
except ZeroDivisionError:
print('greška: ne deli sa nulom')
except IndexError:
print('greška: element ne postoji')
Dat je sledeći kod:
txt = '2'
res1 = txt + 3
res2 = txt1
Napišite kod za preuzimanje predstavljenih
izuzetaka u promenljivim res1 i res2.