您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

如果查看内置错误文档,则会看到大多数Exception类将其第一个参数分配为message属性。并非所有人都这样做。

值得注意的是,EnvironmentError(与子类IOErrorOSError)具有的第一自变量errno,第二的strerror。没有messagestrerror大致类似于通常的message

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

我认为处理此问题的正确方法是,识别Exception要捕获的特定子类,然后仅捕获那些子类,而不是所有带有的except Exception子类,然后利用特定子类定义的所需属性

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

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

try:
    pass
except 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)
python 2022/1/1 18:42:40 有533人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶