Хватање различитих типова изузетака у Пајтону
У истом коду може бити потребно да хватимо различите типове изузетака.
Рецимо да нам треба да хватимо изузетак при дељењу са нулом. При таквој врсти грешке излази изузетак:
ZeroDivisionError: division by zero
Да бисмо га ухватили, име изузетка треба
да запишемо у блоку except:
try:
print(1 / 0)
except ZeroDivisionError:
print('грешка: не дели са нулом')
Такође, рецимо да имамо следећу листу:
lst = [1, 2, 3]
Ако у блоку try напишемо код са другом
потенцијалном грешком, на пример, са исписом
непостојећег елемента, онда ће изузетак,
који није ухваћен у блоку except, проћи
даље и бити исписан у конзоли. Због чега
ће се рад кода зауставити:
lst = [1, 2, 3]
try:
print(lst[4]) # исписаће IndexError: list index out of range
except ZeroDivisionError:
print('грешка: не дели са нулом')
Да бисмо решили ову ситуацију, потребно је да наведемо у сваком блоку име одговарајућег типа изузетака. Хајде да додамо у наш код изузетак због недостајућег елемента:
try:
print(lst[4])
except ZeroDivisionError:
print('грешка: не дели са нулом')
except IndexError:
print('грешка: елемент не постоји')
Дат је следећи код:
txt = '2'
res1 = txt + 3
res2 = txt1
Напишите код да бисте ухватили изузетке приказане
у променљивим res1 и res2.