автозапуск файла python только после того, как он вызывает ошибку

#python #error-handling

#python #обработка ошибок

Вопрос:

я использую python для обхода веб-страниц, и у меня есть программа, которую я хочу запускать вечно. к сожалению, я могу столкнуться с ошибками в любое время. например:

 import schedule
import time
import threading

def test():
    print('test')

    #here is the main code which may cause any error anytime

schedule.every(5).seconds.do(test)


def running():
    while True:
        schedule.run_pending()
        time.sleep(1)
thread = threading.Thread(target=running)
thread.start()

    #rest of the program which may cause any error anytime
 

как я могу изменить его, чтобы при возникновении ошибки он перезапускался с самого начала?
я использовал while , try но не смог получить ответ, а также прочитать os , subprocess но опять ничего полезного.

Комментарии:

1. используйте try/except для перехвата ошибки, а затем вы можете перейти к началу while True или вы можете выйти while True , что может быть внешним while True с функциями, которые сбрасывают настройки перед повторным запуском кода. В Linux популярно использовать внешний программный супервизор для управления процессом и перезапуска его, когда он не работает. В конце концов, вы периодически запускаете его, используя program cron вместо module sheduler , и он будет запускать его снова через минуту (минуты), даже если он сломан.

2. проблема в while True том, что он будет запускать программу снова и снова, даже если она не выдает ошибку. и если вы сделаете заявление о прерывании while, когда программа не выдает ошибку, программа запустится только один раз и не будет перезапускаться после ошибки (учтите, что программа — это времяоснованный на нем и может вызвать ошибку в любое время …)