Мой скрипт на Python (однопоточный) выполняется в течение многих часов, однако через некоторое время он внезапно останавливается. Мы использовали блок try-except
для отладки ошибки. Однако это ведет себя очень странно. Мы используем:
try:
while True:
# do routine
time.sleep(someSeconds)
except Exception as e:
# exception!
finally:
# finish
Процедура while выполняется нормально, затем сценарий (он же главный поток) засыпает, просыпается и снова выполняет процедуру. Через несколько часов выполняется блок finally, без исполняемый блок исключения (первый).
Как это может быть? Насколько я знаю , когда цикл while True
останавливается по любой причине, должен быть выполнен блок исключения (до, наконец,)? Как может быть так, что ошибка не перехватывается?
Примечание: в цикле while нет возврата / прерывания