Python:永不消亡的函数

Python: function that never dies

我正在编写一个永远不会像这样死掉的长时间运行的函数:

def immortal():
    try:
        # do something
    except:
        sleep(5)
        immortal()

这样,如果在try...except之间有错误,就会被捕获,休眠5秒后,函数再次启动。

我担心的是,既然是一个long running function,如果有两个很多error,会不会导致try...except栈太深,导致性能问题?

我这样做对吗?如果不是,正确的方法是什么?

使用 try...except.

时有一个可选的 else
def immortal():
    while True:
        try:
            # pass or raise
        except:
            print('error')
        else:
            print('done')
            break