打印Python异常的正确方法是什么?

9 投票
2 回答
7027 浏览
提问于 2025-04-16 01:49
        except ImportError as xcpt:
            print "Import Error: " + xcpt.message

在2.6版本中,你会收到一个弃用警告,因为这个消息要被去掉了。Stackoverflow

你应该如何处理ImportError?(注意,这是一种内置的异常,不是我自己定义的……)

2 个回答

2

如果你想打印出错误信息:

print "Couldn't import foo.bar.baz: %s" % xcpt

错误(异常)有一个叫做 __str__ 的方法,这个方法可以把错误信息变得更容易理解。我建议你不要再加上“导入错误:”这样的文字,因为错误本身会告诉你这些信息。如果你想在错误信息中添加一些文字,最好是根据你正在执行的代码来写一些你知道的内容。

9

正确的方法是

xcpt.args

只有 message 这个属性会被去掉。其他的异常依然会存在,并且它们仍然会有参数。

可以看看这个链接:http://www.python.org/dev/peps/pep-0352/,里面有一些关于为什么要去掉 messages 属性的理由。

撰写回答