Режим записи и остановка скрипта



  • Если в скрипте присутствует действие "Игнорировать ошибки", то при остановке в режиме записи автоматически будут выполняться действия из [[WAS_ERROR]], так как почему - то BAS при выполнении "Прервано Пользователем" в логе считает это ошибкой. Да, конечно можно обрабатывать каждую ошибку отдельно и тогда такого не будет, но хотел спросить, для чего это нужно? И не было бы логичнее просто не считать это ошибкой. Если после [[WAS_ERROR]] присутствуют много действий, то каждый раз при остановке приходится нажимать несколько раз на клавишу "Остановить", это как - то немного не удобно.



  • Соглашусь, не удобно, особенно если при ошибке отправляешь письмо на почту или телеграм.
    Как костыль подойдет вариант - после [WAS_ERROR] добавить проверку условия

    if [LAST_EROOR] !="прервано пользователем"
    


  • @GameBot Так же для новичков в BAS я думаю это может быть проблемой.
    Типа, почему я жму на "Остановить", а скрипт продолжает выполняться.



  • @GameBot

    if [[WAS_ERROR]] && [LAST_EROOR] !="прервано пользователем"
    

    а так можно?



  • @spacerange в какой версии программы наблюдается ошибка?
    Протестировал сейчас. Вроде "Прервать скрипт" в последней версии не считается ошибкой.



  • @GameBot На самой последней, но только в режиме записи.
    Сейчас запишу гифку.



  • @GameBot 2020-06-24_19-54-02.gif

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



  • @spacerange said in Режим записи и остановка скрипта:

    На самой последней, но только в режиме записи.

    В режиме запуска такое не наблюдается. Видимо я тоже ловил эту ошибку во время редактирования скрипта в режиме записи. Ошибку тоже воспроизвел на последней версии.
    В таком случае это все же ошибка. Действия программы в режиме записи и запуска отличаются. Даже в логе в "режиме записи" действие "прервано пользователем" выделяется как ошибка (выделено красным), а при запуске получаем "Поток выполнен успешно с сообщением "Ok""



  • @GameBot Тоже это заметил, поэтому в шапке написал, что в логе считается ошибкой.
    Проверял в режиме запуска, там все ок.



  • @GameBot said in Режим записи и остановка скрипта:

    @spacerange said in Режим записи и остановка скрипта:

    На самой последней, но только в режиме записи.

    В режиме запуска такое не наблюдается. Видимо я тоже ловил эту ошибку во время редактирования скрипта в режиме записи. Ошибку тоже воспроизвел на последней версии.
    В таком случае это все же ошибка. Действия программы в режиме записи и запуска отличаются. Даже в логе в "режиме записи" действие "прервано пользователем" выделяется как ошибка (выделено красным), а при запуске получаем "Поток выполнен успешно с сообщением "Ok""

    Действие может завершится успешно только в одном случае - если завершится само. Завершится ошибкой может по таймауту или при прерывании пользователем.

    Меня если честно раздражает немного другой момент этого поведения, когда выполняемое действие находится глубоко в циклах и условиях, то её прерывание сбросит стек.
    Надо посмотреть метод кнопки "Прервать" в интерфейсе..



  • @Fox said in Режим записи и остановка скрипта:

    @GameBot said in Режим записи и остановка скрипта:

    @spacerange said in Режим записи и остановка скрипта:

    На самой последней, но только в режиме записи.

    В режиме запуска такое не наблюдается. Видимо я тоже ловил эту ошибку во время редактирования скрипта в режиме записи. Ошибку тоже воспроизвел на последней версии.
    В таком случае это все же ошибка. Действия программы в режиме записи и запуска отличаются. Даже в логе в "режиме записи" действие "прервано пользователем" выделяется как ошибка (выделено красным), а при запуске получаем "Поток выполнен успешно с сообщением "Ok""

    Действие может завершится успешно только в одном случае - если завершится само. Завершится ошибкой может по таймауту или при прерывании пользователем.

    Меня если честно раздражает немного другой момент этого поведения, когда выполняемое действие находится глубоко в циклах и условиях, то её прерывание сбросит стек.
    Надо посмотреть метод кнопки "Прервать" в интерфейсе..

    Вопрос тут в другом: почему с точки зрения программы прервать выполнение в режиме записи - это ошибка, а в режиме запуска уже нет (получаем "Работа завершена с сообщением ОК", то есть уже "Успешно")
    Если бы логика в обоих случаях была одинаковая, то вопросов бы не было - "Так заложено разработчиком". Получается это не одна кнопка, а разные



  • @GameBot said in Режим записи и остановка скрипта:

    @Fox said in Режим записи и остановка скрипта:

    @GameBot said in Режим записи и остановка скрипта:

    @spacerange said in Режим записи и остановка скрипта:

    На самой последней, но только в режиме записи.

    В режиме запуска такое не наблюдается. Видимо я тоже ловил эту ошибку во время редактирования скрипта в режиме записи. Ошибку тоже воспроизвел на последней версии.
    В таком случае это все же ошибка. Действия программы в режиме записи и запуска отличаются. Даже в логе в "режиме записи" действие "прервано пользователем" выделяется как ошибка (выделено красным), а при запуске получаем "Поток выполнен успешно с сообщением "Ok""

    Действие может завершится успешно только в одном случае - если завершится само. Завершится ошибкой может по таймауту или при прерывании пользователем.

    Меня если честно раздражает немного другой момент этого поведения, когда выполняемое действие находится глубоко в циклах и условиях, то её прерывание сбросит стек.
    Надо посмотреть метод кнопки "Прервать" в интерфейсе..

    Вопрос тут в другом: почему с точки зрения программы прервать выполнение в режиме записи - это ошибка, а в режиме запуска уже нет (получаем "Работа завершена с сообщением ОК", то есть уже "Успешно")
    Если бы логика в обоих случаях была одинаковая, то вопросов бы не было - "Так заложено разработчиком". Получается это не одна кнопка, а разные

    А где вы нашли кнопку "Прервать" в режиме "запуска"?



  • @Fox Да, по идее "Прервать" и "Остановить" разные кнопки, но смысл схож и от того ещё более не ясно почему это считается ошибкой, ведь в режиме запуска нажать ее нельзя и поэтому обрабатывать такую ошибку незачем.



  • @spacerange said in Режим записи и остановка скрипта:

    @Fox Да, по идее "Прервать" и "Остановить" разные кнопки, но смысл схож и от того ещё более не ясно почему это считается ошибкой, ведь в режиме запуска нажать ее нельзя и поэтому обрабатывать такую ошибку незачем.

    Действие "игнорировать ошибки" не так давно сильно апнули, теперь оно позволяет игнорировать большинство ошибок (в том числе и критические, например в действии "выполнить код"). Скорее всего именно по этому это действие и срабатывает даже при ручном прерывании действия



  • @Fox Так же очень бесит, что скрипт встаёт после смены профиля в режиме записи. Ты начинаешь его тестово прогонять, где-то внутри функции меняется профиль - и всё. Всё перезагружается и встаёт. Все циклы сбрасываются, из этой функции в материнскую по Return значение уже не передастся - скрипт "потерялся" в пространстве и забыл, что он делал до смены профиля.


Log in to reply