python - 为什么不打印异常?

标签 python python-3.x exception exception-handling

在 REPL 中,我可以打印异常的字符串表示形式:

>>> print(str(ValueError))
<class 'ValueError'>
>>> print(ValueError)
<class 'ValueError'>

在这段简单的代码中,没有打印值。我错过了什么?

第一味:

try:
    raise ValueError
except Exception as e:
    print(str(e))
    print('We crashed!')

这只是输出我们崩溃了!

第二种口味输出相同。 print(str(e)) 发生了什么?

第二种口味:

def crash():
    raise ValueError

try:
    crash()
except Exception as e:
    print(str(e))
    print('We crashed!')

最佳答案

In the REPL, I can print the string representation of an exception:

>>> print(str(ValueError))
<class 'ValueError'>

不,您正在打印异常 的字符串表示形式。当你做的时候

raise ValueError

ValueError 实际上并不是引发的异常对象。 Python 隐式引发 ValueError() 而不是 thatstr 为空。

关于python - 为什么不打印异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41170011/

相关文章:

python - 如何在 Odoo 中以编程方式隐藏字段?

python - 根据给定索引计算列表中剩余项目的数量

python - 如何从 shell 一个接一个地运行多个 python 脚本

python - 收到无效类型比较错误

php - 如何使用 PhpExcel 处理异常?

python - 无法调用Docker容器

python - 读取 JSON : what encoding is "\u00c5\u0082"? 如何将其获取到 unicode 对象?

python - scipy.optimize.curve_fit : Default value of max_nfev broken?

c++ - 如何修复 bad_typeid 异常

exception - 无法捕获错误: The Following Error occured: list index out of range