在Python中获取异常值

2024-04-26 03:51:42 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有密码:

try:
    some_method()
except Exception, e:

如何获取此异常值(字符串 我的意思是?


Tags: 字符串密码exceptionsomemethodtryexcept
3条回答

Use repr() and The difference between using repr and str

使用^{}

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

使用^{}

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

尽管我意识到这是一个老问题,但我还是建议使用^{} module来处理异常的输出。

使用traceback.print_exc()将当前异常打印到标准错误,就像它在未捕获时打印一样,或者使用traceback.format_exc()获得与字符串相同的输出。如果要限制输出或将打印重定向到类似文件的对象,可以将各种参数传递给这些函数中的任何一个。

使用str

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

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

需要注意的是,如果没有错误消息,只使用str将返回一个空字符串,而使用pyfunc建议的repr将至少显示异常的类。我的看法是,如果你打印出来,它是为一个终端用户,不关心什么是类,只是希望一个错误消息。

它实际上取决于您正在处理的异常类以及如何实例化它。你有什么特别的想法吗?

相关问题 更多 >