@Webmartin said in Как вернуться к блоку выполненному с ошибкой?:
@Fox Есть действия, которые при перезагрузке страницы или повторном входе в аккаунт уже не будет. Так же если функцию начать заново, то уже ничего не получится. Нужно чтоб определенное действие попыталось выполнится еще пару раз, в большинстве случаев это решает мою проблему. Вот логика которая используется в моем проекте, как можно реализовать действие в звездочках?
var RandAction = [Функция 1, Функция 3]; //переменная со случайными функциями
while true{
if(RandAction == ""){ break;}
var ERROR = 0; //переменная c количеством ошибок
var Rand; //вырезать одну функцию со списка RandAction
while(Функция 1 == Rand){*Логика как в Функция 3*}
while(Функция 2 == Rand){*Логика как в Функция 3*}
while(Функция 3 == Rand){
Игнорировать ошибки{
Вызвать Функцию 3;
Break;
}
Если была ошибка{
ERROR++;
If(ERROR == 3){break;}
*Тут нужно вернутся к блоку с ошибкой внутри Функции 3*
}
}
}
Повторюсь ещё раз, в BAS нет возможности перемещать точку выполнения скрипта к действию по его id. Чисто в теории вы можете создать метки перед каждым действием с названием id действия

И переходить к такой метке с помощью переменной [[ERROR_ID]], однако это действие находится внутри блока "игнорировать ошибки" и если перейти по метке внутрь блока, то сам блок работать не будет. То есть точка выполнения вернётся к действию, однако если оно снова вернёт ошибку, то поток завершится.

Тестовый скрипт: 2348.xml