А есть ли аналог BED END ?



  • @DrPrime said in А есть ли аналог BED END ?:

    @Gang
    скорее всего какая то ошибка у тебя в логике.

    Игнор ошибок
         Загрузить - тут нет ошибки. was_error false
         Игнор ошибок 
               Двигать мишь - тут ошибка
         выкинуло с блока, тут was_error true
         Ввод текста - ошибки нет
    Вышли из блока was_error false, но lasterror содержит предыдущую ошибку
    Условие была ли ошибка
    

    Кидаю свои тестовые шаблоны. Проверьте пожалуйста у себя.

    1. Тут есть неизвестная ошибка в теле скрипта. Все отрабатывает как вы и говорите, конфликта нет.
      0_1504382353472_test_bad_end_1.xml

    2. Тут НЕТ неизвестных ошибок в теле скрипта. Но финишный if([[WAS_ERROR]]) все равно выполнится. В нем сохраняется значение от внутреннего блока игнора.
      0_1504382456837_test_bad_end_2.xml

    Нужно универсальное решение. Чтоб при любой неизвестной ошибке отрабатывал финишный if([[WAS_ERROR]]). При этом ошибки которые возникают в теле скрипта и обрабатываются внутренними игнорами, не учитываются.



  • @Gang Да, действительно так. Странно. Хотя у меня много скриптов построены по логике выше. Скорее всего не сталкивался с этим, потому что обычно в обработке внутреннего блока идет например, смена прокси и т.д., после чего идет снова игнор ошибок



  • @DrPrime Выходит мое решение с присваиванием [[WAS_ERROR]] = false после каждого внутреннего игнора верное? Ну чтоб универсальный BAD END сделать? Или есть другие варианты?



  • @DrPrime Ни чего странного здесь нет, в мануале так и пишут:

    Вы можете прочитать переменную WAS_ERROR чтобы проверить, были ли ошибки во время последнего блока «Игнорировать Ошибки».

    То есть это логично, что переменная не обнулилась после выхода из блока игнорирование ошибок, более того, такое поведение было бы странным и не правильным. Ведь не известно, где мне пригодится значение этой переменной.
    @Gang Кто то на форуме уже предлагал @support 'y сделать опцию, игнорирование всех ошибок, но он отказался, потому что надёжнее правильно оформить логику скрипта, чем получить работу скрипта с непонятными данными..
    По большому счёту ошибку может вернуть не так уж и много экшенов. Вы ведь не по координатам кликаете? Да и можно вставить экшен проверить виден ли элемент на экране и тому подобное.



  • @Gang да
    @fox Тут чуть другая логика. Зачем ошибку из внутреннего блока переносить во внешний блок?



  • @Gang Ещё не забывайте, что если в блоке игнорировать ошибки экшен вернёт ошибку, то последующие просто пропустятся.
    0_1504383612853_forum57.png
    Вот ваш же скрипт с этими действиями.



  • @Fox said in А есть ли аналог BED END ?:

    @Gang Ещё не забывайте, что если в блоке игнорировать ошибки экшен вернёт ошибку, то последующие просто пропустятся.
    0_1504383612853_forum57.png
    Вот ваш же скрипт с этими действиями.

    Ну это я все в курсе) Тут штука в том что ошибка от внутреннего блока игнора передается во внешний.



  • @Gang Ну раз вкурсе, тогда не вижу проблему :) Устанавливаете значение переменной вручную после перехода из внешнего игнора во внутренний и по выходу во внешний тоже.

    А вообще интересная тема, надо @support 'a спросить на этот счёт, должно ли менятся значение [[WAS_ERROR]] после перехода из внешнего игнорирования ошибок во внутренний.


  • administrators

    @Fox Да, это баг, что переменная не обновляется, исправлю завтра.


  • administrators

    Исправил, будет в следующей.



  • @support said in А есть ли аналог BED END ?:

    Исправил, будет в следующей.

    Спасибо!


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.