Я знаю, что если я хочу повторно создать исключение, я просто использую 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. Или как я могу реорганизовать свой код, чтобы избежать этой проблемы?