Ich weiß, dass ich, wenn ich eine Ausnahme erneut auslösen möchte, einfach raise
ohne Argumente im jeweiligen except
Block verwende. Aber gegeben ein verschachtelter Ausdruck wie
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
Wie kann ich das erneut erhöhen, SomeError
ohne die Stapelspur zu unterbrechen? raise
allein würde in diesem Fall die neueren wieder erhöhen AlsoFailsError
. Oder wie könnte ich meinen Code umgestalten, um dieses Problem zu vermeiden?
arg
und ich würde versuchen , Berufung , arg.plan_B()
die ein erhöhen könnte AttributeError
aufgrund arg
keinen Plan B bereitstellt
plan_B
Ausnahmen
plan_B
andere Funktion einzufügen, dieTrue
auf Erfolg undFalse
Ausnahme zurückgreift? Dann könnte der äußereexcept
Block einfach seinif not try_plan_B(): raise