ReferenceError: Can't find variable: IF_ELSE_EXPRESSION
-
Скрипт работает в многопотоке и иногда возникает вот такая ошибка: [904481092] ReferenceError: Can't find variable: IF_ELSE_EXPRESSION_264262
Windows 10, BAS 2.4.0Точнее, это ошибка в конечном счете самая частая оказывается.
К тому же скрипт всегда идет по варианту true и до else вообще не должен доходить.
-
@Antonio Попробуйте пересоздать действие if, если не поможет, присылайте проект.
-
@support, да уже не актуально, как-то решил. Посмотрите вот этот мой вопрос, пожалуйста - http://community.bablosoft.com/topic/538/проблема-с-изображением-при-большом-числе-потоков/10
Из-за этой проблемы сейчас приходится под Зенку переписывать большую часть проекта.
-
[554444119] [08:35:41] Поток №1 : Поток завершился с сообщением "ReferenceError: Can't find variable: IF_ELSE_EXPRESSION_785769 во время выполнения действия "
внутри функции goto неto, внутри функции вызова другие функции изменяющие порядок выполнения действий тоже,
как я понимаю екшан "Проверить существование" вернет только тру или не тру, и всегда вернет, даже если допустим чтото произойдет с _URL
если бы _URL "undefined" то Can't find variable: VAR__URL,
в _URL может быть и 0 или любая(не начинающаяся на допустим с ">CSS" или пустая строка то true.может ли быть связана ошибка с рекурсивным вызовом функции, но внутри функции goto неto, внутри функции вызова другие функции изменяющие порядок выполнения действий тоже
-
0_1519789733090_test.xml
вот пример повторяющий логику моего скрипта и воспроизводящий ошибку.
если при первом запуске функции i ветвление идет в else скрипт отрабатывает без ошибки, если идет через основной блок if c рекурсивным вызовом функции, то при позже ветвлении в else, блок else отрабатывает нормально, но при возврате по стеку выше, на может разрешить надо ли обрабатывть блок else
-
Для моей ситуации проблема решена удалением елзе блока и переносом его содержимое за корневой вызов функции. Но рекурсивный вызов в БАС может покалечить, если не намутить свой стек. И вероятно с циклами проблема может быть все та же.