gpt4 book ai didi

python - python中的多个异常处理程序

转载 作者:行者123 更新时间:2023-11-28 21:51:22 29 4
gpt4 key购买 nike

我正在编写必须处理大量 IndexError 异常的代码。
所以,我使用了一个 try except block :

try:
<do some level_1 calculations>
except IndexError:
<change to level_2 calculations>

但是,如果我的异常处理程序再次引发另一个 IndexError 怎么办?
我怎样才能安全地将另一个 IndexError 异常放入此代码结构中,以便如果 level_2 计算再次陷入 IndexError 中,则代码运行“level_3 计算”作为再次异常等等。

最佳答案

你可以嵌套 try except block ,像这样:

try:
<do some level_1 calculations>
except IndexError:
try:
<change to level_2 calculations>
except IndexError:
try:
<change to level_3 calculations>
except IndexError:
<change to level_4 calculations>

但这看起来会很乱,如果您弄乱了格式,可能会导致麻烦,最好使用您循环尝试不同计算的函数列表,直到所有计算都失败,然后您以其他方式处理异常。

calulators = [
level_1_calculation_function,
level_2_calculation_function,
level_3_calculation_function,
]

for attempt in range(len(calculators)):
try:
result = calculators[attempt]
break #If we've reached here, the calculation was successful
except IndexError:
attempt += 1
else:
#If none of the functions worked and broke out of the loop, we execute this.
<handle_exception>

关于python - python中的多个异常处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30479288/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com