Хватање различитих типова изузетака у Пајтону

У истом коду може бити потребно да хватимо различите типове изузетака.

Рецимо да нам треба да хватимо изузетак при дељењу са нулом. При таквој врсти грешке излази изузетак:

errorZeroDivisionError: division by zero

Да бисмо га ухватили, име изузетка треба да запишемо у блоку except:

pythontry:
  print(1 / 0)
except ZeroDivisionError:
  print('грешка: не дели са нулом')

Такође, рецимо да имамо следећу листу:

pythonlst = [1, 2, 3]

Ако у блоку try напишемо код са другом потенцијалном грешком, на пример, са исписом непостојећег елемента, онда ће изузетак, који није ухваћен у блоку except, проћи даље и бити исписан у конзоли. Због чега ће се рад кода зауставити:

pythonlst = [1, 2, 3]
try:
  print(lst[4]) # исписаће IndexError: list index out of range
except ZeroDivisionError:
  print('грешка: не дели са нулом')

Да бисмо решили ову ситуацију, потребно је да наведемо у сваком блоку име одговарајућег типа изузетака. Хајде да додамо у наш код изузетак због недостајућег елемента:

pythontry:
  print(lst[4])
except ZeroDivisionError:
  print('грешка: не дели са нулом')
except IndexError:
  print('грешка: елемент не постоји')
Задание 1

Дат је следећи код:

pythontxt = '2'

res1 = txt + 3
res2 = txt1

Напишите код да бисте ухватили изузетке приказане у променљивим res1 и res2.