python 3 try-except all with error

Question:

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?

Asked By: Ryan Mills

||

Answers:

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())
Answered By: Cyzanfar

You can do:

   try:
       print(555)
   except Exception as err:
      print("Erro {}".format(err))

Or use raise

Docs are always your friend

Tip: Avoid use “except:”

Use something more descriptive like

...
except (ValueError, KeyError):

Unless your code is very well tested, you can’t figure out every error.

Answered By: Joao Vitorino
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.