Вы никогда не поднимаете MixedError
. Также обратите внимание, что родительские классы ничего не знают о дочерних классах, поэтому, когда вы вызываете Error1
или Error2
, вы поднимаете ошибку, используя __str__
из этого конкретного класса:
class Error1(Exception):
pass
class Error2(Exception):
pass
class MixedError(Error1, Error2):
pass
try:
raise MixedError('Error here')
except MixedError:
print("caught 'MixedError'")
Выход:
caught 'MixedError'