Sé que si quiero volver a generar una excepción, lo uso raise
sin argumentos en el except
bloque 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 SomeError
sin romper el rastro de la pila? raise
solo 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?
arg
e intentaría llamar, lo arg.plan_B()
que podría generar un AttributeError
arg
plan_B
generar excepciones
plan_B
otra función que regreseTrue
con éxito yFalse
con excepción? Entonces elexcept
bloque exterior podría serif not try_plan_B(): raise