这是使用多个异常的有效Python代码吗?

问题描述 投票:0回答:1

假设我们有这样的代码。

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方式吗?

谢谢。

python python-3.x try-catch
1个回答
0
投票

如果您想同时处理

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}")

您的代码处于正确的轨道上,但您需要考虑捕获异常的上下文中变量的范围。

© www.soinside.com 2019 - 2024. All rights reserved.