Пресекување на различни типови на исклучоци во 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 исклучоци.