Продолжить выполнение действий после ошибки с того же места



  • Всем привет. Имеется большой алгоритм. Необходимо сделать на каждое действие игнорирование ошибок, т.к. как показала практика, они могут случиться на ровном месте из-за непонятного бага. И именно в этот момент нужно запомнить место, где произошла ошибка, затем выполнить это действие ещё раз и продолжить выполнение алгоритма. Возможно ли такое реализовать?



  • Снимок.PNG
    вместо результата можно запись в файл или вывод в лог



  • @tet-vivi я бы не назвал это правильным решением моей поставленной задачи. В данном варианте алгоритм будет выполняться с самого начала, где поставлена метка. А нужно, чтобы он переходил именно к тому действию, где случилась ошибка



  • @androsha said in Продолжить выполнение действий после ошибки с того же места:

    @tet-vivi я бы не назвал это правильным решением моей поставленной задачи. В данном варианте алгоритм будет выполняться с самого начала, где поставлена метка. А нужно, чтобы он переходил именно к тому действию, где случилась ошибка

    ставь метку перед тем местом.
    в примере 1 действо 1 обработка ошибки и возврат к началу этой ошибки.

    в 1 сообщении ты писал что у тебя 1 дествие в блоке "игнорировать ошибки", во 2 сообщении у тебя что уже несколько действий в блоке "игнорировать ошибки"?

    кроме метки есть альтернатива GOTO реализацию на js.
    но метки и так выполнят поведение GOTO.
    Больше альтернатив нету.



  • @tet-vivi я имел в виду все действия, которые есть в алгоритме. Ключевое слово в моём первом посте "большой алгоритм". Неужели придётся на каждое действие ставить игнорирование ошибок и метку?
    А таких действий порядка 200 шт.



  • @androsha said in Продолжить выполнение действий после ошибки с того же места:

    А таких действий порядка 200 шт.

    200 это среднячек.
    я например делаю сразу что бы игнорирование ошибок использовать по минимум. во-первых.
    можно метку внутрь блока игнорирование ошибок поставить



  • @androsha said in Продолжить выполнение действий после ошибки с того же места:

    Всем привет. Имеется большой алгоритм. Необходимо сделать на каждое действие игнорирование ошибок, т.к. как показала практика, они могут случиться на ровном месте из-за непонятного бага. И именно в этот момент нужно запомнить место, где произошла ошибка, затем выполнить это действие ещё раз и продолжить выполнение алгоритма. Возможно ли такое реализовать?

    Ошибки нужно обрабатывать, а не игнорировать. Ваш озвученный алгоритм может просто встать в бесконечный цикл, если что то пошло не так (будет пытаться найти несуществующий элемент)



  • @Fox said in Продолжить выполнение действий после ошибки с того же места:

    @androsha said in Продолжить выполнение действий после ошибки с того же места:

    Всем привет. Имеется большой алгоритм. Необходимо сделать на каждое действие игнорирование ошибок, т.к. как показала практика, они могут случиться на ровном месте из-за непонятного бага. И именно в этот момент нужно запомнить место, где произошла ошибка, затем выполнить это действие ещё раз и продолжить выполнение алгоритма. Возможно ли такое реализовать?

    Ошибки нужно обрабатывать, а не игнорировать. Ваш озвученный алгоритм может просто встать в бесконечный цикл, если что то пошло не так (будет пытаться найти несуществующий элемент)

    какая задача такой и ответ. а обработку оно и понятно нужно, хотябы от вечного цикла...



  • @Fox имеется много действий, которые загружают страницы. Иногда происходит таймаут по неизвестной мне причине. Ещё бывает происходит действие "Проверить существование элемента" и таймаут. Судя по происходящему это баги или ПК не справляется с такой мощностью при многопоточности, отчего и происходит ошибка. Мне вот поэтому нужно игнорировать ошибки в каждом действии



  • @tet-vivi said in Продолжить выполнение действий после ошибки с того же места:

    @Fox said in Продолжить выполнение действий после ошибки с того же места:

    @androsha said in Продолжить выполнение действий после ошибки с того же места:

    Всем привет. Имеется большой алгоритм. Необходимо сделать на каждое действие игнорирование ошибок, т.к. как показала практика, они могут случиться на ровном месте из-за непонятного бага. И именно в этот момент нужно запомнить место, где произошла ошибка, затем выполнить это действие ещё раз и продолжить выполнение алгоритма. Возможно ли такое реализовать?

    Ошибки нужно обрабатывать, а не игнорировать. Ваш озвученный алгоритм может просто встать в бесконечный цикл, если что то пошло не так (будет пытаться найти несуществующий элемент)

    какая задача такой и ответ. а обработку оно и понятно нужно, хотябы от вечного цикла...

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



  • @Fox ответил выше. В одном потоке скрипт работает стабильно. Когда делаю чуть больше, начинают происходить баги иногда



  • @androsha said in Продолжить выполнение действий после ошибки с того же места:

    @Fox имеется много действий, которые загружают страницы. Иногда происходит таймаут по неизвестной мне причине. Ещё бывает происходит действие "Проверить существование элемента" и таймаут. Судя по происходящему это баги или ПК не справляется с такой мощностью при многопоточности, отчего и происходит ошибка. Мне вот поэтому нужно игнорировать ошибки в каждом действии

    Игнорировать и повторить каждое действие не получится. Но вы можете вынести необходимые действия (алгоритм) в функцию и игнорировать вызов функции. В таком случае при ошибке, можно будет запустить этот алгоритм заново



  • @Fox жаль, что нет функции, которая будет игнорировать ошибки во всём алгоритме и стартовать с нужного действия. Очень хорошо помогает, когда не хватает мощности и необходимо выполнить действие ещё раз



  • @androsha said in Продолжить выполнение действий после ошибки с того же места:

    @Fox жаль, что нет функции, которая будет игнорировать ошибки во всём алгоритме и стартовать с нужного действия. Очень хорошо помогает, когда не хватает мощности и необходимо выполнить действие ещё раз

    Это неправильный подход к разработке, будь такая возможность неизвестно какие ошибки бы пришлось дебажить в последствии и объяснять пользователем что не так с их скриптом.



  • @Fox так я и говорю именно про функцию, которую можно включить по желанию пользователя. Если возникнут подобные проблемы, то первым делом спрашивать у них включили ли они такую функцию



  • @androsha said in Продолжить выполнение действий после ошибки с того же места:

    @Fox так я и говорю именно про функцию, которую можно включить по желанию пользователя. Если возникнут подобные проблемы, то первым делом спрашивать у них включили ли они такую функцию

    В любом случае, такого функционала нет. Если вы знаете какие действия у вас могут вызвать ошибку, то создайте свой обработчик ошибок. Функцию, в которой будет действие "загрузить" с необходимой переменной в поле url, в случае ошибки будет срабатывать цикл повтора, если ошибки нет, выходить из функции.
    Такие функции можно создать для каждого действия и передавать в них входные данные.


Log in to reply
 

  • 3
  • 3
  • 25
  • 3
  • 6
  • 3
  • 9
  • 9