我正在编写一个长期运行的函数,它永远不会像这样死掉:
def immortal():
try:
# do something
except:
sleep(5)
immortal()
通过这种方式,如果在try ...之间出现问题,那么它会被捕获,在5秒的睡眠后,函数会再次启动。
我担心的是,因为它是一个长期运行的功能,如果有两个错误,它会导致尝试...除了堆栈太深,导致性能问题?
我这样做了吗?如果没有,那么正确的方法是什么?
答案 0 :(得分:2)
使用try ... except时有一个可选的else
。
def immortal():
while True:
try:
# pass or raise
except:
print('error')
else:
print('done')
break