Break и игнорирование ошибки
-
@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 тоже в игнорировании ошибок лежит? Скинь скрин участка.
@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. Я не пробовал менять условие внутри цикла, но в теории возможно.
Отличие IF от While именно в условии, в IF пишется условие, чтобы блоки в нём выполнялись. А While будет выполнятся до тех пор, пока не выполнится условие.
-
For 1..3 For 1...99999 Игнорирование ошибок if break
Да, действительно, так работает неправильно.
Это происходит из-за того, что break сейчас работает и как break и как return, а игнорирование ошибок реализовано через вызов функции.
Исправил.
Спасибо, что сообщили.