python - 如果“try”子句抛出 SyntaxError,Python“finally”子句不会执行
问题描述
考虑以下代码:
try:
a = []
a[4] = 4
except ZeroDivisionError:
print('h')
finally:
print('y')
输出显示 finally 子句已执行:
y
Traceback (most recent call last):
File "work/finally.py", line 3, in <module>
a[4] = 4
IndexError: list assignment index out of range
但是,如果我将 try 子句更改为以下内容:
[] += [] - []
然后 finally 子句不会被执行:
File "work/finally.py", line 2
[] += [] - []
^
SyntaxError: illegal expression for augmented assignment
这种行为的原因是什么?我在哪里可以读到这个?我没有在文档中找到它。
解决方案
推荐阅读
- javascript - 是否可以使用 React-Native-HighCharts 加载带有外部数据的工具提示?
- r - R中的下划线图
- c# - 将字符串转换为 HTML 以通过 WebMethod 注入段落
- angular6 - 使用反应式表单时未检索到 FormArray 的表单控件值
- logstash - 无法将 csv 日志中的日期和时间解析到 logstash
- angular - 如何过滤角度材料表中的日期
- mysql - 如何在 laravel 视图中提高多个计数查询的性能
- javascript - 如何在 Chart.JS 的半圆环图中间添加一些文本?
- windows - 尝试添加 Boost Process 时,cmake 无法打开文件 optimize.lib
- flowtype - 流程:为子类指定接口的正确方法是什么?