Break и игнорирование ошибки



  • @venom777 попробуй Выполнить Код
    _break(2)
    А может дело в том, что надо курсорчик выполнения перемещать не вручную, а по правой кнопке, и там будет "переместить точку выполнения". Типо циклы сбиваются, если вручную перемещать.



  • @Viktor said in Break и игнорирование ошибки:

    попробуй Выполнить Код
    _break(2)

    Автор в первом посте написал

    @venom777 said in Break и игнорирование ошибки:

    Пробовал break2,3 в итоге заново выполняется блок Игнорирования ошибок



  • @Fox блин. просмотрел.



  • @Viktor said in Break и игнорирование ошибки:

    @venom777 попробуй Выполнить Код
    _break(2)
    А может дело в том, что надо курсорчик выполнения перемещать не вручную, а по правой кнопке, и там будет "переместить точку выполнения". Типо циклы сбиваются, если вручную перемещать.

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



  • @venom777 действительно интересно. еще простой вариант решить проблему просится на ум. Проверить Сусчествование чего-то, что будет на странице. Потом if exists==false , и тогда уже break



  • @venom777 a в was_error что пишет в разных случаях? Может, условие не выполняется?



  • @venom777 У тебя break тоже в игнорировании ошибок лежит? Скинь скрин участка.



  • @Fox said in Break и игнорирование ошибки:

    @venom777 У тебя break тоже в игнорировании ошибок лежит? Скинь скрин участка.

    0_1495568151282_upload-120077b1-3a7f-452a-8299-0c9e9cc2bfbe

    @Viktor said in Break и игнорирование ошибки:

    @venom777 a в was_error что пишет в разных случаях? Может, условие не выполняется?

    Break срабатывает в одной из функций когда скрипт должен прервать работу For 1...99999, вернуться в For 1..3 и взять новое задание и опять упасть в For 1...99999.

    Игнорирование ошибок я ставил что бы не заморачиваться и не дописывать обработку get запросов на который пришел плохой ответ внутри функций, хотелось по быстрому обойти проблему.

    Скрипт очень большой и уже сложновато его править стало =)) Сейчас попробую объяснить как это работало и что случилось с добавлением игнора ошибок.

    БЫЛО

    For 1..3
       For 1...99999
            if прервать == yes
                  break - возвращал к 1..3
            else 
                  продолжить итерацию 1...99999
    

    СТАЛО

    For 1..3
       For 1...99999
          Блок Игнорирование ошибок
            if прервать == yes
                  break - возвращал не к 1..3 , а к Блок игнорирование ошибок
            else 
                  продолжить итерацию 1...99999
    

    И как итог когда получали break внутри игнора - bas начинал выполнять по кругу блок игнорирования ошибки - в итоге в логе начинался жесткий спам и отображало что bas завис (а по факту был лютый спам в файле лога).



  • @venom777 Мне скриншот нужен был, чтобы понять, break у тебя тоже в блоке игнорирования ошибок был? Сейчас тестовый проект сделаю, посмотрю..
    А зачем использовать For 1...99999? While в этом плане же лучше?

    Есть ещё способ использовать метки.



  • @Fox said in Break и игнорирование ошибки:

    @venom777 Мне скриншот нужен был, чтобы понять, break у тебя тоже в блоке игнорирования ошибок был? Сейчас тестовый проект сделаю, посмотрю..
    А зачем использовать For 1...99999? While в этом плане же лучше?

    Есть ещё способ использовать метки.

    Да break в этом глобальном игноре ошибок который я пометил на скрине, отдельного прямо перед break блока игнорирования ошибок нету, только тот единственный блок игнора, внутри него функция, а в функции break. Работает как надо, но если взять весь этот участок кода в блок игнорирования ошибок, то вот такая штука выходит.

    While пока еще не применял, надо будет потестить в новых скриптах, условие While можно получается менять внутри самого цикла? Тогда это было бы и вправду удобнее For.

    Когда начинал проект этот создавать о метках еще и слуху не было, а сейчас если где-то меткой воспользоваться, то сбиваются все циклы и вся очередность скрипта.



  • @venom777 В условие While можно вставить переменную, только тебе её нужно объявить перед входом в While. Я не пробовал менять условие внутри цикла, но в теории возможно.
    0_1495571687469_forum5.png

    Отличие IF от While именно в условии, в IF пишется условие, чтобы блоки в нём выполнялись. А While будет выполнятся до тех пор, пока не выполнится условие.


  • administrators

    @venom777

    For 1..3
       For 1...99999
     Игнорирование ошибок
       if 
          break
    

    Да, действительно, так работает неправильно.
    Это происходит из-за того, что break сейчас работает и как break и как return, а игнорирование ошибок реализовано через вызов функции.
    Исправил.
    Спасибо, что сообщили.


Log in to reply
 

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