Han*_*ler 2 python exception python-3.x
在 REPL 中,我可以打印异常的字符串表示形式:
>>> print(str(ValueError))
<class 'ValueError'>
>>> print(ValueError)
<class 'ValueError'>
Run Code Online (Sandbox Code Playgroud)
在这个简单的代码中,不打印该值。我缺少什么?
第一口味:
try:
raise ValueError
except Exception as e:
print(str(e))
print('We crashed!')
Run Code Online (Sandbox Code Playgroud)
这只是输出We crashed!
第二种口味输出相同。发生什么事了print(str(e))?
第二种口味:
def crash():
raise ValueError
try:
crash()
except Exception as e:
print(str(e))
print('We crashed!')
Run Code Online (Sandbox Code Playgroud)
它确实打印了异常消息,但你必须仔细观察:
>>> def crash():
... raise ValueError
>>> try:
... crash()
... except Exception as e:
... print(str(e))
... print('We crashed!')
We crashed!
Run Code Online (Sandbox Code Playgroud)
“We crashed”前面的空行是您在执行时提供的错误消息(空字符串)raise ValueError。要表示异常,请使用repr而不是str:
>>> try:
... crash()
... except Exception as e:
... print(repr(e))
... print('We crashed!')
ValueError()
We crashed!
Run Code Online (Sandbox Code Playgroud)
请注意,这只是(注意括号)raise ValueError的简写。raise ValueError()
| 归档时间: |
|
| 查看次数: |
8503 次 |
| 最近记录: |