There are different ways to get the print exception type in Python. If you want to print the name of the exception in an error message use anyone the below methods.
type(exception).__name__
exception.__class__.__name__
exception.__class__.__qualname__
try:
foo = bar
except Exception as exception:
assert type(exception).__name__ == 'NameError'
assert exception.__class__.__name__ == 'NameError'
assert exception.__class__.__qualname__ == 'NameError'
Python print exception type
Simple example codes determine what type of exception occurred.
try:
x = 1 / 0
except Exception as ex:
template = "An exception of type {0} occurred. Arguments:\n{1!r}"
message = template.format(type(ex).__name__, ex.args)
print(message)
Output:
If you also want the same stack trace can get that like this.
import traceback
print traceback.format_exc()
If you use the logging
module, you can print the exception to the log (along with a message) like this:
import logging
log = logging.getLogger()
log.exception("Message for you, sir!")
If you want to dig deeper and examine the stack, look at variables, etc., use the post_mortem
function of the pdb
module inside the except block:
import pdb
pdb.post_mortem()
Source: https://stackoverflow.com/questions/9823936/
Do comment if you have any doubts or suggestions on this Python exception-handling topic.
Note: IDE: PyCharm 2021.3.3 (Community Edition)
Windows 10
Python 3.10.1
All Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.