gpt4 book ai didi

python - 在 Python 中打印异常,而不是引发它们

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:49 31 4
gpt4 key购买 nike

我想捕获 Python 异常并打印它而不是重新引发它。例如:

def f(x):
try:
return 1/x
except:
print <exception_that_was_raised>

然后应该这样做:

>>> f(0)
'ZeroDivisionError'

没有异常被引发。

除了在巨大的 try-except-except...except 子句中列出每个可能的异常之外,有没有办法做到这一点?

最佳答案

使用异常的 message 属性或 e.__class__.__name__ 如果您想要 Base 异常类的名称,即 ZeroDivisionError'在你的情况下

In [30]: def f(x):
try:
return 1/x
except Exception as e:
print e.message
....:

In [31]: f(2)
Out[31]: 0

In [32]: f(0)
integer division or modulo by zero

在 python 3.x 中,message 属性已被删除,因此您可以简单地使用 print(e)e.args[0] 那里,e.__class__.__name__ 保持不变。

关于python - 在 Python 中打印异常,而不是引发它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364023/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com