Но появилась новая проблема. Иногда скрипт во время работы внезапно запрещает выделять действия. Т.е при клике на любое действие, оно просто не выделяется красным. Это второй баг, независимый от первого если что
Режим записи и остановка скрипта
-
Если в скрипте присутствует действие "Игнорировать ошибки", то при остановке в режиме записи автоматически будут выполняться действия из [[WAS_ERROR]], так как почему - то BAS при выполнении "Прервано Пользователем" в логе считает это ошибкой. Да, конечно можно обрабатывать каждую ошибку отдельно и тогда такого не будет, но хотел спросить, для чего это нужно? И не было бы логичнее просто не считать это ошибкой. Если после [[WAS_ERROR]] присутствуют много действий, то каждый раз при остановке приходится нажимать несколько раз на клавишу "Остановить", это как - то немного не удобно.
-
@spacerange в какой версии программы наблюдается ошибка?
Протестировал сейчас. Вроде "Прервать скрипт" в последней версии не считается ошибкой. -
Тестовый скрипт: TestError.xml
-
@spacerange said in Режим записи и остановка скрипта:
На самой последней, но только в режиме записи.
В режиме запуска такое не наблюдается. Видимо я тоже ловил эту ошибку во время редактирования скрипта в режиме записи. Ошибку тоже воспроизвел на последней версии.
В таком случае это все же ошибка. Действия программы в режиме записи и запуска отличаются. Даже в логе в "режиме записи" действие "прервано пользователем" выделяется как ошибка (выделено красным), а при запуске получаем "Поток выполнен успешно с сообщением "Ok"" -
@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""Действие может завершится успешно только в одном случае - если завершится само. Завершится ошибкой может по таймауту или при прерывании пользователем.
Меня если честно раздражает немного другой момент этого поведения, когда выполняемое действие находится глубоко в циклах и условиях, то её прерывание сбросит стек.
Надо посмотреть метод кнопки "Прервать" в интерфейсе..Вопрос тут в другом: почему с точки зрения программы прервать выполнение в режиме записи - это ошибка, а в режиме запуска уже нет (получаем "Работа завершена с сообщением ОК", то есть уже "Успешно")
Если бы логика в обоих случаях была одинаковая, то вопросов бы не было - "Так заложено разработчиком". Получается это не одна кнопка, а разныеА где вы нашли кнопку "Прервать" в режиме "запуска"?
-
@spacerange said in Режим записи и остановка скрипта:
@Fox Да, по идее "Прервать" и "Остановить" разные кнопки, но смысл схож и от того ещё более не ясно почему это считается ошибкой, ведь в режиме запуска нажать ее нельзя и поэтому обрабатывать такую ошибку незачем.
Действие "игнорировать ошибки" не так давно сильно апнули, теперь оно позволяет игнорировать большинство ошибок (в том числе и критические, например в действии "выполнить код"). Скорее всего именно по этому это действие и срабатывает даже при ручном прерывании действия
-
@Fox Так же очень бесит, что скрипт встаёт после смены профиля в режиме записи. Ты начинаешь его тестово прогонять, где-то внутри функции меняется профиль - и всё. Всё перезагружается и встаёт. Все циклы сбрасываются, из этой функции в материнскую по Return значение уже не передастся - скрипт "потерялся" в пространстве и забыл, что он делал до смены профиля.
