So che se voglio rilanciare un'eccezione, lo uso semplicemente raisesenza argomenti nel rispettivo exceptblocco. Ma data un'espressione annidata come
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
come posso rilanciare SomeErrorsenza rompere la traccia dello stack? raisesolo in questo caso rialzerebbe il più recente AlsoFailsError. O come posso rifattorizzare il mio codice per evitare questo problema?
plan_Bun'altra funzione che ritornaTruein caso di successo eFalsesu eccezione? Quindi ilexceptblocco esterno potrebbe essere soloif not try_plan_B(): raise