我想捕获Python的异常并打印它,而不是重新抛出它。例如:
这应该做到:
def f(x):
try:
return 1/x
except:
print <exception_that_was_raised>
这应该做到:
>>> f(0)
'ZeroDivisionError'
在不触发任何异常的情况下,有没有一种方法可以做到这一点?除了在一个巨大的try-except-except...except子句中列出每个可能的异常之外,还有其他方法吗?
print e.__class__.__name__
- mgilsonprint repr(e)
也可以。 - Burhan Khalidclass Whoa: pass
的实例,这将不起作用。 - alex_jordanrepr(e)
返回的是e.__class__.__name__
和e.args
的组合,即输出为ZeroDivisionError('integer division or modulo by zero',)
。 - Ashwini Chaudhary