Перахоп розных тыпаў выключэнняў у Python

У адным і тым жа кодзе можа спатрэбіцца перахопліваць розныя тыпы выключэнняў.

Хай нам трэба злавіць выключэнне пры дзяленні на нуль. Пры такога роду памылцы выходзіць выключэнне:

errorZeroDivisionError: division by zero

Каб яго злавіць, імя выключэння варта запісаць у блоку except:

pythontry:
  print(1 / 0)
except ZeroDivisionError:
  print('error: do not divide by zero')

Таксама хай у нас ёсць спіс:

pythonlst = [1, 2, 3]

Калі задаць у блоку try код з іншай патэнцыйнай памылкай, напрыклад, з вывадам неіснуючага элемента, то выключэнне, не злоўленае ў блоку except, пройдзе далей і вывядзецца ў кансоль. З-за чаго спыніцца работа кода:

pythonlst = [1, 2, 3]
try:
  print(lst[4]) # выведзе IndexError: list index out of range
except ZeroDivisionError:
  print('error: do not divide by zero')

Для вырашэння такой сітуацыі, трэба ўказаць у кожным блоку імя адпаведнага тыпу выключэнняў. Дадамо ў наш код выключэнне па які няма элементу:

pythontry:
  print(lst[4])
except ZeroDivisionError:
  print('error: do not divide by zero')
except IndexError:
  print('error: elem is not exist')
Задание 1

Дадзены наступны код:

pythontxt = '2'

res1 = txt + 3
res2 = txt1

Напішыце код, каб перахопліваць прадстаўленыя ў зменных res1 і res2 выключэнні.