Python:永不消亡的功能

时间:2015-01-08 05:04:41

标签: python

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

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

通过这种方式,如果在try ...之间出现问题,那么它会被捕获,在5秒的睡眠后,函数会再次启动。

我担心的是,因为它是一个长期运行的功能,如果有两个错误,它会导致尝试...除了堆栈太深,导致性能问题?

我这样做了吗?如果没有,那么正确的方法是什么?

1 个答案:

答案 0 :(得分:2)

使用try ... except时有一个可选的else

def immortal():
    while True:
        try:
            # pass or raise
        except:
            print('error')
        else:
            print('done')
            break