Al manejar excepciones en python, me encuentro repitiendo código con bastante frecuencia. El patrón básico es algo de la forma:¿Cuáles son algunas formas elegantes de abstraer el manejo repetitivo de excepciones en python?
try:
action_here()
except CommonException1:
Action_always_taken_for_CommonException1()
except CommonException2:
Action_always_taken_for_CommonException2()
except Exception:
Default_action_always_taken()
Lo que me gustaría hacer es de alguna forma abstracta el código repetitivo a una función o clase. Yo sé una manera de hacerlo es llamar a una función de gestión de excepciones con el objeto de excepción, tales como:
try:
action_here()
except Exception as e:
handle_exception(e)
Luego, en esta función determinar la excepción basada en la clase.
def handle_exception(e):
if type(e) == type(CommonException1()):
Action_always_taken_for_CommonException1()
elif type(e) == type(CommonException2()):
Action_always_taken_for_CommonException2())
else:
Default_action_always_taken()
Esto, sin embargo, se siente torpe y poco elegante. Entonces mi pregunta es, ¿cuáles son algunas otras alternativas para manejar el manejo repetitivo de excepciones?
que parece tan elegante como se puede conseguir. ¿Qué estabas pensando en usar? – Blender
@Blender Mi solución fue la única solución viable que se me ocurrió. Estaba preguntando si alguien sabía de una mejor solución. – cledoux