Ich weiß, dass ich, wenn ich eine Ausnahme erneut auslösen möchte, einfach raiseohne Argumente im jeweiligen exceptBlock 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, SomeErrorohne die Stapelspur zu unterbrechen? raiseallein würde in diesem Fall die neueren wieder erhöhen AlsoFailsError. Oder wie könnte ich meinen Code umgestalten, um dieses Problem zu vermeiden?
argund ich würde versuchen , Berufung , arg.plan_B()die ein erhöhen könnte AttributeErroraufgrund argkeinen Plan B bereitstellt
plan_BAusnahmen
plan_Bandere Funktion einzufügen, dieTrueauf Erfolg undFalseAusnahme zurückgreift? Dann könnte der äußereexceptBlock einfach seinif not try_plan_B(): raise