except. Python обработает блок, если возникнет любое из исключений, перечисленных в кортеже. Например:
  
try:
    # Код, который может вызвать MyException1 или MyException2
    pass
except (MyException1, MyException2) as e:
    # Обработка MyException1 ИЛИ MyException2
    print(f"Ошибка: {e}")
except MyException3 as e:
    #Обработка MyException3
    pass
  except и он будет ловить все дочерние исключения.
Для обработки нескольких собственных исключений разных типов в одном блоке except, можно использовать синтаксис группировки исключений. Python позволяет перечислить несколько исключений в кортеже, который будет передан в except.
Вот пример:
class ValidationError(Exception):
    pass
class NetworkError(Exception):
    pass
class DatabaseError(Exception):
    pass
def process_data(data):
    try:
        if not isinstance(data, dict):
            raise ValidationError("Data must be a dictionary.")
        if len(data) == 0:
            raise ValueError("Data dictionary cannot be empty.") # встроенное исключение
        # Допустим, здесь логика для отправки данных по сети
        raise NetworkError("Failed to connect to the server.") # для примера
        # Допустим, здесь логика для записи данных в базу данных
        raise DatabaseError("Failed to write to database.") # для примера
    except (ValidationError, NetworkError, DatabaseError) as e:
        print(f"Произошла ошибка: {type(e).__name__} - {e}")
        # Обработка ошибки для ValidationError, NetworkError и DatabaseError
        # Например, логирование ошибки, повторная попытка действия, отображение сообщения пользователю, и т.д.
    except ValueError as e:
        print(f"Произошла ошибка ValueError: {e}")
        #Обработка ValueError, если это необходимо.  В противном случае можно было бы не указывать этот except блок.
    except Exception as e:
        print(f"Произошла необработанная ошибка: {type(e).__name__} - {e}")
        # Обработка любых других исключений, которые не были пойманы ранее.
        # Очень важно иметь этот блок, чтобы предотвратить неожиданное завершение программы.
data = "invalid"
process_data(data)
data = {}
process_data(data)
data = {"key":"value"}
process_data(data) #выбросит NetworkError, а потом DatabaseError, но только первый будет обработан.
  В этом примере, ValidationError, NetworkError и DatabaseError обрабатываются в одном блоке except.  Если возникает любое из этих исключений, код в этом блоке except будет выполнен.  Внутри блока except вы можете использовать e для доступа к объекту исключения и получения информации о нем (например, сообщения об ошибке).
Важно отметить, что порядок блоков except имеет значение. Если вы добавите Exception в начало списка исключений, то оно перехватит все исключения, включая и собственные, и код для собственных исключений никогда не будет выполнен.  Старайтесь располагать более специфические исключения перед более общими.
Альтернативный способ (начиная с Python 3.11) - использовать except* для обработки групп исключений, когда может возникнуть несколько исключений одновременно.  Это более продвинутый подход, подходящий для асинхронного программирования или случаев, когда несколько операций могут завершиться с ошибкой одновременно.  Однако, стандартный подход с кортежем в except подходит для большинства ситуаций.