ReferenceError: Can't find variable: IF_ELSE_EXPRESSION



  • Скрипт работает в многопотоке и иногда возникает вот такая ошибка: [904481092] ReferenceError: Can't find variable: IF_ELSE_EXPRESSION_264262

    alt text
    Windows 10, BAS 2.4.0

    Точнее, это ошибка в конечном счете самая частая оказывается.
    К тому же скрипт всегда идет по варианту true и до else вообще не должен доходить.


  • administrators

    @Antonio Попробуйте пересоздать действие if, если не поможет, присылайте проект.



  • @support, да уже не актуально, как-то решил. Посмотрите вот этот мой вопрос, пожалуйста - http://community.bablosoft.com/topic/538/проблема-с-изображением-при-большом-числе-потоков/10
    Из-за этой проблемы сейчас приходится под Зенку переписывать большую часть проекта.



  • 0_1519786713871_error.png

    [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



  • Для моей ситуации проблема решена удалением елзе блока и переносом его содержимое за корневой вызов функции. Но рекурсивный вызов в БАС может покалечить, если не намутить свой стек. И вероятно с циклами проблема может быть все та же.