Printing out actual error message for ValueError
PythonPython 3.xExceptionPython Problem Overview
How can I actually print out the ValueError's message after I catch it?
If I type except ValueError, err:
into my code instead of except ValueError as err:
, I get the error SyntaxError: invalid syntax
.
Python Solutions
Solution 1 - Python
try:
...
except ValueError as e:
print(e)
Solution 2 - Python
Python 3 requires casting the exception to string before printing:
try:
...
except ValueError as error:
print(str(error))
Solution 3 - Python
Another approach using logging
import logging
try:
int("dog")
except Exception as e:
logging.warning(e)
logging.error(e)
gives
WARNING:root:invalid literal for int() with base 10: 'dog'
ERROR:root:invalid literal for int() with base 10: 'dog'
[Program finished]
Just typing the exception gives,
invalid literal for int() with base 10: 'dog'
[Program finished]
Depends on how you want to process the output
Solution 4 - Python
Another way of accessing the message is via args
:
try:
...
except ValueError as e:
print(e.args[0])