读代码专项第 9 题:异常类型选错
data = {}
try:
value = data["name"]
except IndexError:
value = "默认值"
print(value)
运行时没有打印默认值,而是报错。
-
代码意图:
尝试从 data 字典中读取 name 对应的值;如果读取失败,就把 value 设为“默认值”并打印。 -
问题和根因:
问题在 except IndexError。data["name"] 是字典取 key,data 中没有 "name" 时抛出的是 KeyError,而不是 IndexError,所以 except 接不住异常,程序不会执行默认值逻辑。 -
修复方案:
将 except IndexError 改为 except KeyError。

浙公网安备 33010602011771号