Перезапуск при любой ошибке



  • Всем доброго времени. Подскажите, как одним действием/условием задать перезапуск потока при возникновения любой ошибки в многопоточном режиме, если нет возможности перезапустить поток, то как сделать то же самое для перезапуска всего скрипта?
    Видел тут тему похожую, там совет поменять кол-во выполнений на повтор, но это совсем не то, в скрипте нет кол-ва выполнений, работает пока не остановишь (так надо)), но потоки переодически вылетают из-за ошибок.
    Ошибки возникают в разных местах, но не всегда
    Действий много и каждое заворачивать в игнор ошибок не вариант, к тому же ошибки в одном и том же месте могут быть разные
    Спасибо)



  • @Bigshow8 said in Перезапуск при любой ошибке:

    Всем доброго времени. Подскажите, как одним действием/условием задать перезапуск потока при возникновения любой ошибки в многопоточном режиме, если нет возможности перезапустить поток, то как сделать то же самое для перезапуска всего скрипта?
    Видел тут тему похожую, там совет поменять кол-во выполнений на повтор, но это совсем не то, в скрипте нет кол-ва выполнений, работает пока не остановишь (так надо)), но потоки переодически вылетают из-за ошибок.
    Ошибки возникают в разных местах, но не всегда
    Действий много и каждое заворачивать в игнор ошибок не вариант, к тому же ошибки в одном и том же месте могут быть разные
    Спасибо)

    Можете поместить все действия в функцию, а вызов функции поместить в игнорирование ошибок. При возникновении любой ошибки в функции поток не завершится



  • @Fox
    Спасибо за ответ)
    Дело в том, что там и так действия находятся в функциях, а функций несколько и в каждой есть определенный набор действий, и в каждом этом наборе действий иногда могут вылетать ошибки.
    Получается что нужно просто каждую из этих функций поместить в игнорирование ошибок? А нужно ли что-то ставить в конце?
    Ну т.е. идет кубик игнор ошибок, далее уже внутри него вызов функции (в которой свой набор действий), и вот после нужно какое-то еещ условие или действие ставить, или более ничего не нужно?



  • Может вам лучше подойдёт сделать так
    Проверить существование, далее через if проверяем, и если элемента нет на странице, то делаем нужные действия в блоке else



  • @Bigshow8 said in Перезапуск при любой ошибке:

    @Fox
    Спасибо за ответ)
    Дело в том, что там и так действия находятся в функциях, а функций несколько и в каждой есть определенный набор действий, и в каждом этом наборе действий иногда могут вылетать ошибки.
    Получается что нужно просто каждую из этих функций поместить в игнорирование ошибок? А нужно ли что-то ставить в конце?

    Перечитайте ещё раз моё сообщение. Вам нужно создать отдельную функцию (например "test"), перейти в функцию "Main", выбрать и вырезать все действия, а затем вставить их в созданную функцию "test". В "Main" вместо всех действий должен быть только вызов функции "test" обёрнутый в игнор ошибок

    Ну т.е. идет кубик игнор ошибок, далее уже внутри него вызов функции (в которой свой набор действий), и вот после нужно какое-то еещ условие или действие ставить, или более ничего не нужно?

    Это проще и быстрее проверить самостоятельно, чем задавать вопрос на форуме :). Создайте тестовый скрипт и проверьте



  • @Fox
    в main и так нет ни каких действий, там только вызов функций, а все действия в отдельных функциях)
    если я правильно понял, то мне просто нужно в каждой функции, первым добавить игнор, так же?)
    к примеру в функции такой порядок действий:
    1 Провер сущ. элемента
    2 Если он есть

    • то клик по нему

    3 Следущее дейст
    4 Еще одно

    А сделать надо так:
    1 Игнор ошибок
    и уже внутри него
    1 Провер сущ. элемента
    2 Если он есть

    • то клик по нему

    3 Следущее дейст
    4 Еще одно



  • @Bigshow8 Фокс вам уже написал что сделать.

    Приведу скриншотом, если словами не понятно.
    А в эту функцию ставьте свои действия где возможны ошибки.

    alt text



  • @Dodok
    Спасибо. Я как бы понял это, просто хотел уточнить)
    Но еще раз спасибо за ответы, советы
    Может быть придет время и я тут кому-нибудь смогу помочь))



  • @Dodok
    Не сочтите меня полнейшим идиотом, но можно еще одно уточнение) В таком случае (если сделать это так, как вы показываете) скрипт будет выводит ошибку в лог и перезапускать действия, без остановки, без вылетов?



  • @Bigshow8 Попробуйте


Log in to reply