Я знаю, что если я хочу повторно создать исключение, я просто использую raise
без аргументов в соответствующем блоке except
. Но учитывая вложенное выражение типа
try:
something()
except SomeError as e:
try:
plan_B()
except AlsoFailsError:
raise e # I'd like to raise the SomeError as if plan_B()
# didn't raise the AlsoFailsError
как я могу повторно поднять SomeError
, не нарушая трассировку стека? Только raise
в этом случае повторно поднимет более поздний AlsoFailsError
. Или как я могу реорганизовать свой код, чтобы избежать этой проблемы?