Как в Python можно поймать несколько исключений в одном блоке?

Исключения в Python и их обработка с помощью кортежа в блоке except

В Python исключения — это события, которые происходят во время выполнения программы и изменяют обычный поток выполнения. Исключения обрабатываются с помощью конструкции try/except. Однако, не всегда удобно или даже возможно обрабатывать каждое возможное исключение отдельно. Именно здесь на помощь приходит возможность использования кортежа в блоке except.

Кортежи в блоке except

Python позволяет ловить сразу несколько исключений в одном блоке except. Для этого используется кортеж:

try:
    # ваш код здесь
except (Исключение1, Исключение2):
    # обработка исключения здесь

Применение в практике

Предположим, что у вас есть функция, которая может вызвать TypeError при операции с несовместимыми типами данных, или ValueError, если функция получает аргумент некорректного значения. Вы можете обработать оба этих исключения так:

def calculate(a, b):
    try:
        result = a/b
        return result
    except (TypeError, ValueError):
        print("Некорректный тип данных или значение")

Дополнительные заметки

Не забывайте, что порядок блоков except важен. Python обрабатывает исключения в порядке, в котором они указаны, поэтому если у вас есть общий класс исключений, который должен обрабатывать несколько классов исключений, он должен быть указан последним. В противном случае он "перехватит" все исключения, и более специфические обработчики исключений никогда не будут выполнены.

В любом случае использование кортежей в блоке except - это мощный инструмент Python для обработки исключений, который помогает делать код более универсальным и устойчивым к ошибкам.

Related Questions

Считаете ли это полезным?