我的python脚本(单线程)运行了多个小时,但是,一段时间后它突然停止了。我们使用try-except
块来调试错误。但是,这表现得很奇怪。我们使用:
try:
while True:
# do routine
time.sleep(someSeconds)
except Exception as e:
# exception!
finally:
# finish
while例程正常执行时,脚本(即主线程)进入睡眠状态,唤醒并再次执行该例程。数小时后,将执行finally块,而不执行(首先执行)异常块。
怎么可能? As far as I know,当while True
循环由于任何原因而停止时,是否应该执行except块(在最终之前)?怎么可能没有发现错误?
注意:while循环中没有返回/中断
答案 0 :(得分:0)
我能想到的两个选择:
您的“例程”使用return
或break
退出循环。
引发了一个异常,该异常不是源自Exception
(添加except: print(“other exception”)
进行测试)