Прихващане на различни типове изключения в 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 does not exist')
Даден е следният код:
txt = '2'
res1 = txt + 3
res2 = txt1
Напишете код, за да прихванете представените
в променливите res1 и res2
изключения.