Перахоп розных тыпаў выключэнняў у Python
У адным і тым жа кодзе можа спатрэбіцца перахопліваць розныя тыпы выключэнняў.
Хай нам трэба злавіць выключэнне пры дзяленні на нуль. Пры такога роду памылцы выходзіць выключэнне:
ZeroDivisionError: division by zero
Каб яго злавіць, імя выключэння варта
запісаць у блоку except:
try:
print(1 / 0)
except ZeroDivisionError:
print('error: do not divide by zero')
Таксама хай у нас ёсць спіс:
lst = [1, 2, 3]
Калі задаць у блоку try код з іншай
патэнцыйнай памылкай, напрыклад, з вывадам
неіснуючага элемента, то выключэнне,
не злоўленае ў блоку except, пройдзе
далей і вывядзецца ў кансоль. З-за чаго
спыніцца работа кода:
lst = [1, 2, 3]
try:
print(lst[4]) # выведзе IndexError: list index out of range
except ZeroDivisionError:
print('error: do not divide by zero')
Для вырашэння такой сітуацыі, трэба ўказаць у кожным блоку імя адпаведнага тыпу выключэнняў. Дадамо ў наш код выключэнне па які няма элементу:
try:
print(lst[4])
except ZeroDivisionError:
print('error: do not divide by zero')
except IndexError:
print('error: elem is not exist')
Дадзены наступны код:
txt = '2'
res1 = txt + 3
res2 = txt1
Напішыце код, каб перахопліваць прадстаўленыя
ў зменных res1 і res2
выключэнні.