在 Python 中获取异常值

新手上路,请多包涵

如果我有那个代码:

 try:
    some_method()
except Exception, e:

我怎样才能得到这个异常值(我的意思是字符串表示)?

原文由 Frias 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 197
2 个回答

使用 str

 try:
    some_method()
except Exception as e:
    s = str(e)

此外,大多数异常类都有一个 args 属性。通常, args[0] 将是一条错误消息。

应该注意的是,如果没有错误消息,仅使用 str 将返回一个空字符串,而 pyfunc 建议使用 repr 至少会显示异常的类。我的看法是,如果您要将其打印出来,它是为不关心类是什么而只想要错误消息的最终用户准备的。

这实际上取决于您正在处理的异常类及其实例化方式。你有什么特别的想法吗?

原文由 aaronasterling 发布,翻译遵循 CC BY-SA 2.5 许可协议

使用repr()和使用repr和str的区别

使用 repr

 >>> try:
...     print(x)
... except Exception as e:
...     print(repr(e))
...
NameError("name 'x' is not defined")

使用 str

 >>> try:
...     print(x)
... except Exception as e:
...     print(str(e))
...
name 'x' is not defined

原文由 pyfunc 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题