假设我们有这样的代码。
try:
v = the_dict[the_key]
i = int(v)
print(f"Converted integer is {i}")
except KeyError:
print(f"the_dict doesn't have key {the_key}")
except ValueError:
print(f"It is {v}")
对于第二个 except 块,我们可以说因为 KeyError 没有被捕获所以 v 变量必须有效吗?
这是使用多个异常的Python方式吗?
谢谢。
如果您想同时处理
KeyError
和 ValueError
,您可能需要嵌套 try- except 块
这是更新的代码:
try:
v = the_dict[the_key]
try:
i = int(v)
print(f"Converted integer is {i}")
except ValueError:
print(f"It is {v}")
except KeyError:
print(f"the_dict doesn't have key {the_key}")
您的代码处于正确的轨道上,但您需要考虑捕获异常的上下文中变量的范围。