如何在Python中正确获取异常消息

如何在Python中正确获取异常消息,第1张

如何在Python中正确获取异常消息

如果查看内置错误的文档,则会看到大多数

Exception
类将其第一个参数分配为
message
属性。并非所有人都这样做。

值得注意的是,

EnvironmentError
(与子类
IOError
OSError
)具有的第一自变量
errno
,第二的
strerror
。没有
message
strerror
大致类似于通常的
message

更一般而言,的子类

Exception
可以执行他们想要的任何 *** 作。它们可能具有也可能没有
message
属性。将来的内置
Exception
可能没有
message
属性。
Exception
从第三方库或用户代码导入的任何子类都可能没有
message
属性。

我认为处理此问题的正确方法是,识别

Exception
捕获的特定子类,然后仅捕获那些子类,而不是所有带有的
exceptException
子类,然后利用特定子类定义的所需属性。

如果您必须执行

print
某些 *** 作,则我认为打印捕获到的
Exception
自身最有可能执行您想要的 *** 作,无论它是否具有
message
属性。

您也可以像这样检查消息属性,但我不会真正建议它,因为它看起来很混乱:

try:    passexcept Exception as e:    # Just print(e) is cleaner and more likely what you want,    # but if you insist on printing message specifically whenever possible...    if hasattr(e, 'message'):        print(e.message)    else:        print(e)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5646628.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存