Как избежать всех возможных ошибок с помощью функции "попробуй... кроме"

Я запускаю код Python для выполнения непрерывной очистки веб-страниц (на Linux Mint с Python 2.7). Из-за некоторых причин код время от времени ломается. Что я сделал, так это вручную перезапустил код всякий раз, когда произошла ошибка.

Я хочу написать другой код Python, чтобы заменить меня, чтобы выполнить эту работу "проверить состояние, если сломать, а затем снова запустить".

Я не уверен, с чего начать. Кто-нибудь может дать мне подсказку?

1 ответ

Решение

Вы хотите что-то вроде этого:

from my_script import main

restart = True
while restart:
    try:
        main()
        # This line will allow the script to end if main returns. Leave it out
        # if you want main to get restart even when it returns with no errors. 
        restart = False
    except Exception as e:
        print("An error in main: ")
        print(e.message)
        print("Restarting main...")

Это требует, чтобы ваш сценарий, my_script.py в этом примере будет настроено что-то вроде этого:

def foo():
    raise ValueError("An error in foo")

def main():
    print("The staring point for my script")
    foo()

if __name__ == "__main__":
    main()
Другие вопросы по тегам