# Перехват разных типов исключений в 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` исключения.

← →
↑