尝试除了块不执行(但最终会执行)

时间:2019-03-07 22:40:15

标签: python-3.x exception try-catch

我的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循环中没有返回/中断

1 个答案:

答案 0 :(得分:0)

我能想到的两个选择:

  • 您的“例程”使用returnbreak退出循环。

  • 引发了一个异常,该异常不是源自Exception(添加except: print(“other exception”)进行测试)