Atrapa cualquier error en Python
exception exception-handling (3)
¿Es posible detectar algún error en Python? No me importa cuáles serán las excepciones específicas, porque todas tendrán el mismo respaldo.
Es posible que desee también mirar sys.excepthook :
Cuando se genera una excepción y no se captura, el intérprete llama a sys.excepthook con tres argumentos, la clase de excepción, la instancia de excepción y un objeto de rastreo. En una sesión interactiva, esto sucede justo antes de que se devuelva el control a la solicitud; en un programa de Python esto sucede justo antes de que el programa salga. El manejo de tales excepciones de nivel superior se puede personalizar asignando otra función de tres argumentos a sys.excepthook.
Ejemplo:
def except_hook(type, value, tback):
# manage unhandled exception here
sys.__excepthook__(type, value, tback) # then call the default handler
sys.excepthook = except_hook
El uso, except
por sí mismo, detectará cualquier excepción que no sea un error de seguridad.
try:
something()
except:
fallback()
Es posible que desee manejar KeyboardInterrupt por separado en caso de que necesite usarlo para salir de su script:
try:
something()
except KeyboardInterrupt:
return
except:
fallback()
Hay una buena lista de excepciones básicas que puedes encontrar here . También me gusta bastante el módulo de traceback para recuperar una pila de llamadas de la excepción. Intente traceback.format_exc()
o traceback.print_exc()
en un controlador de excepciones.
try:
# do something
except Exception, e:
# handle it
Para Python 3.x:
try:
# do something
except Exception as e:
# handle it