Sé que si quiero volver a generar una excepción, lo uso raisesin argumentos en el exceptbloque respectivo . Pero dada una expresión anidada como
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
¿Cómo puedo volver a subir el SomeErrorsin romper el rastro de la pila? raisesolo en este caso volvería a plantear el más reciente AlsoFailsError. ¿O cómo podría refactorizar mi código para evitar este problema?
arge intentaría llamar, lo arg.plan_B()que podría generar un AttributeErrorarg
plan_Bgenerar excepciones
plan_Botra función que regreseTruecon éxito yFalsecon excepción? Entonces elexceptbloque exterior podría serif not try_plan_B(): raise