python 3 try-except all with error

Ryan Mills picture Ryan Mills · Nov 3, 2017 · Viewed 87.3k times · Source

Is it possible to do a try-except catch all that still shows the error without catching every possible exception? I have a case where exceptions will happen once a day every few days in a script running 24/7. I can't let the script die but they also don't matter since it retries regardless as long as I try except everything. So while I track down any last rare exceptions I want to log those to a file for future debugging.

example:

try:
    print(555)
except:
    print("type error: "+ str(the_error))

Any way to replace the_error with a stack trace or something similar?

Answer

Cyzanfar picture Cyzanfar · Nov 3, 2017

Yes you can catch all errors like so:

try:
    print(555)
except Exception as e:
    print("type error: " + str(e))

For the stack trace I usually use the traceback module:

import traceback

try:
    print(555)
except Exception as e:
    print("type error: " + str(e))
    print(traceback.format_exc())