python exception exception-handling try-catch fallback

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