gpt4 book ai didi

python - 异常处理 - 通过嵌套或循环再次运行函数?

转载 作者:行者123 更新时间:2023-11-28 23:02:55 25 4
gpt4 key购买 nike

我有一个经常抛出异常的函数(SSH over 3g)。

我想继续尝试每 10 秒运行一次 function() 直到它成功(不抛出异常)。

在我看来,有两种选择:

嵌套:

def nestwrapper():
try:
output = function()
except SSHException as e:
# Try again
sleep(10)
return nestwrapper()
return output

循环:(更新)

有人指出,之前的循环代码是完全没有必要的。

def loopwrapper():
while True:
try:
return function()
except SSHException as e:
sleep(10)

是否有更好的方法?

嵌套和异常堆栈是否有问题?

最佳答案

我会在这里找到一个更干净、更高效的循环。如果这是一个自动化作业,递归方法可能会达到 python 递归限制(默认为 1000 iirc,可以使用 sys.getrecursionlimit() 检查)。

不要对表达式使用 status is False,因为这是身份比较。使用 而不是 status

我可能也会以稍微不同的方式实现它,因为我看不出这里需要两个不同的函数:

def function_with_retries():
while True:
try:
output = function()
except SSHException:
sleep(10)
else:
return output

关于python - 异常处理 - 通过嵌套或循环再次运行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9222624/

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