a3n*_*3nm 6 python scope exception python-2.7 python-3.x
请考虑以下最小示例:
try:
raise Exception('foo')
except Exception:
try:
raise Exception('bar')
except Exception:
pass
raise
Run Code Online (Sandbox Code Playgroud)
使用Python 2运行此代码会引发异常栏,使用Python 3运行它会引发异常foo.然而,Python 2和Python 3的文档都指出,raise没有表达式会引发"当前作用域中活动的最后一个异常".为什么Python 2和3中的范围不同?差异记录在哪里?
范围不同,因为 Python 3 更高级。:)
for 的范围bar从缩进的 开始,到其子句(或子句,如果有的话)try中的最后一个语句之后结束;裸露的内容显然在该节中,这就是重新加注的内容。exceptfinallyraisefoo except
这是 Python 3 中修复的小问题之一。不过,文档可能会更清晰。
| 归档时间: |
|
| 查看次数: |
298 次 |
| 最近记录: |