python 3 try-except all with error
PythonPython 3.xTry ExceptPython Problem Overview
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?
Python Solutions
Solution 1 - Python
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())
Solution 2 - Python
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.