Что происходит с моим первым исключением ( A
), когда второе ( B
) возникает в следующем коде?
class A(Exception): pass
class B(Exception): pass
try:
try:
raise A('first')
finally:
raise B('second')
except X as c:
print(c)
Если запустить с X = A
, я получаю:
Traceback (most recent call last): File "raising_more_exceptions.py", line 6, in raise A('first') __main__.A: first During handling of the above exception, another exception occurred: Traceback (most recent call last): File "raising_more_exceptions.py", line 8, in raise B('second') __main__.B: second
Но если X = B
я получаю:
second
Этот вопрос конкретно касается Python 3 , так как его обработка исключений сильно отличается от Python 2.