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:

errorZeroDivisionError: division by zero

Da bismo ga uhvatili, ime izuzetka treba zapisati u bloku except:

pythontry:
  print(1 / 0)
except ZeroDivisionError:
  print('greška: ne deli sa nulom')

Takođe, pretpostavimo da imamo listu:

pythonlst = [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:

pythonlst = [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:

pythontry:
  print(lst[4])
except ZeroDivisionError:
  print('greška: ne deli sa nulom')
except IndexError:
  print('greška: element ne postoji')
Задание 1

Dat je sledeći kod:

pythontxt = '2'

res1 = txt + 3
res2 = txt1

Napišite kod za preuzimanje predstavljenih izuzetaka u promenljivim res1 i res2.