Что нового

Как настроить AU3Check для пропуска уведомлений об ошибках?

kasper_sky

Antivirus
Сообщения
116
Репутация
1
Доброго всем времени суток.

До перехода на AutoIt 3.3.8.1 сидел на 3.3.6.1. На старой версии(3.3.6.1) AU3Check выдавал окошко предупреждения о найденных ошибках и позволял выбрать два действия: "Stop" и "Continue".

Так вот, в чем заключается моя проблема: AU3Check в AutoIt 3.3.8.1 выдает предупреждения, но в консоль. При этом нельзя пропустить ошибки и запустить скрипт.

Рылся в справке к AU3Check и AutoIt3Wrapper, ничего толкового не нашел.

Подскажите решение. Мне нужно, чтобы я мог запускать скрипт с ошибками.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
kasper_sky [?]
На старой версии(3.3.6.1) AU3Check выдавал окошко предупреждения о найденных ошибках и позволял выбрать два действия: "Stop" и "Continue".
Не было такого.

Подскажите решение. Мне нужно, чтобы я мог запускать скрипт с ошибками.
Решения поставленной задачи нет.
Нужно писать код без ошибок.
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
На старой версии(3.3.6.1) AU3Check выдавал окошко предупреждения о найденных ошибках и позволял выбрать два действия: "Stop" и "Continue".
В 3.3.8.1 это также есть. Пропустить можно некритические ошибки.
 
Автор
K

kasper_sky

Antivirus
Сообщения
116
Репутация
1
CreatoR [?]
Нужно писать код без ошибок.
Я ожидал этого ответа.

А если я редактирую код, строк эдак под 3 тысячи, и при редактировании у меня возникает штук 30 ошибок? А мне всего-лишь нужно посмотреть, работает ли некоторая часть кода?

А это что тогда?(см. скриншот)


Добавлено:
Сообщение автоматически объединено:

sngr [?]
В 3.3.8.1 это также есть. Пропустить можно некритические ошибки.
Как видите на моем скриншоте, в 3.3.6.1 на примере
Код:
MsgBox(0, '')

выдавалось окошко. Пробовал в 3.3.8.1 - тупо выдает ошибку в консоль и все.

Я прекрасно знаю, что "нужно писать правильный код, можно закоментировать" и так далее... Но ведь если раньше было, то почему сейчас нету? Убрали фичу?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
kasper_sky [?]
А если я редактирую код, строк эдак под 3 тысячи, и при редактировании у меня возникает штук 30 ошибок?
Ответ тот же, нужно писать код без ошибок.

А это что тогда?
Это продолжит скрипт только если имеются ошибки типа необъявленных переменных, и обращение к ним происходит по некому условию. Но в любом случае, по выполнению данного условия скрипт выдась ошибку и продолжить дальше уже не сможет.

если раньше было, то почему сейчас нету?
Код в студию.
 
Автор
K

kasper_sky

Antivirus
Сообщения
116
Репутация
1
CreatoR [?]
Ответ тот же, нужно писать код без ошибок.
Пишу я код без ошибок. Но когда я изменяю(переписываю) код на новый, появляется куча ошибок, которые я исправлю позже. В данный момент меня будет интересовать работоспособность того или иного участка кода, который я и хочу проверить без исправления других ошибок. Концепция понятна?

Но в любом случае, по выполнению данного условия скрипт выдась ошибку и продолжить дальше уже не сможет.
Я это прекрасно понимаю.

Я писал выше, элементарный
Код:
MsgBox(0, '')

AutoIt 3.3.8.1 не пропускает.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
kasper_sky
У меня стандартная установка без AutoIt3Wrapper.exe работает также как и в 3.3.6.1. А если добавить директиву #AutoIt3Wrapper_Run_AU3Check=n ?
 

beve

Осваивающий
Сообщения
104
Репутация
31
kasper_sky [?]
До перехода на AutoIt 3.3.8.1 сидел на 3.3.6.1. На старой версии(3.3.6.1) AU3Check выдавал окошко предупреждения о найденных ошибках и позволял выбрать два действия: "Stop" и "Continue".
Посмотрел и увидел, что в новой версии AutoIt3Wrapper.exe это окошко убрано автором. Чтобы вернуть как было, откройте файл: Путь к папке Autoit\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3 и там найдите участок кода:
Код:
Exit
;~ 					Show_Warnings("Au3Check errors", StringReplace($Return_Text, @CR, ""))

сделайте, чтобы было так:
Код:
Show_Warnings("Au3Check errors", StringReplace($Return_Text, @CR, ""))
и соберите в Exe. Все должно заработать так как раньше.
Кстати, там также можете аналогично обработать участок кода:
Код:
Exit
;~ 						Show_Warnings("Tidy errors", StringReplace($Return_Text, @CR, ""))
, чтобы это же окошко появлялось при использовании Tidy, если оно вам конечно нужно.

Или можете, как советует AZJIO, добавлять директиву #AutoIt3Wrapper_Run_AU3Check=n в начале ваших скриптов, тогда вы не увидите на этапе сборки, есть ли у вас ошибки в коде вообще.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
kasper_sky [?]
А если я редактирую код, строк эдак под 3 тысячи
Это достаточно мало, что бы придумывать отговорку. Я понимаю если бы код у Вас был в 10 раз больше (т.е. 30 тыс - хотя ответ был бы таким же)

[?]
Потому что нельзя так писать. У MsgBox 3 обязательных параметра, а не 2. В нормальном IDE он его даже на компиляцию не отправит.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
kasper_sky [?]
В данный момент меня будет интересовать работоспособность того или иного участка кода, который я и хочу проверить без исправления других ошибок
Значит проверять нужно в отдельном скрипте, в AutoIt не предусмотрено продолжение скрипта после синтаксической ошибки.

AutoIt 3.3.8.1 не пропускает
И предыдущие версии не пропускали.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
CreatoR
И предыдущие версии не пропускали.
Я попробовал до MsgBox написать код и он отработал до первой попавшейся ошибки с неверным параметром MsgBox, кроме случая ошибок разбора циклов, условий и прочих ключевых слов.
Но я тоже остаюсь с мнением, что какая разница в какой последовательности исправлять ошибки, с той что предложит AU3Check не дав ничего выполнить или с той что предложит AutoIt3, в лучшем случае выполнив только исправную часть кода, в худшем также ничего не выполняя.

kasper_sky
А если поискать в файле \AutoIt3\SciTE\Propertiesau3.properties
Вот что в моём фалй от версии 3.3.6.1 с AutoIt3Wrapper
Код:
# Commands to compile / run your script
command.go.$(au3)="$(SciteDefaultHome)\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "$(FilePath)" /autoit3dir "$(autoit3dir)" /UserParams $(1) $(2) $(3) $(4)
может отключить использование AutoIt3Wrapper при старте скрипта? Или параметры как то изменить.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
AZJIO [?]
Я попробовал до MsgBox написать код и он отработал до первой попавшейся ошибки с неверным параметром MsgBox
А я и не говорил что код до ошибки не сработает, я говорил про то что скрипт дальше ошибки не пойдёт.
 
Автор
K

kasper_sky

Antivirus
Сообщения
116
Репутация
1
AZJIO
Не хотелось бы полностью отключать проверку.

Medic84 [?]
Это достаточно мало, что бы придумывать отговорку.
Это не отговорки, а реальная необходимость.

Потому что нельзя так писать.
Я в курсе. Это я СПЕЦИАЛЬНО написал с ошибкой.

CreatoR [?]
Значит проверять нужно в отдельном скрипте
И выносить туда же фиг знает сколько глобальных переменных, обьявленных в разных частях кода? В общем, нам друг друга не понять ;)

beve
Не помогло. Может, я что-то делаю не так?
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
kasper_sky
beve
Не помогло. Может, я что-то делаю не так?
Можно использовать предыдущие версии AutoIt3Wrapper.



Добавлено:
Сообщение автоматически объединено:

AZJIO
Не хотелось бы полностью отключать проверку.
Я работаю всегда без неё и ничего не потерял. Компиляция всё равно через AutoIt3Wrapper, так что он итоговый вариант в любом случае проверит.
 

beve

Осваивающий
Сообщения
104
Репутация
31
kasper_sky [?]
Не помогло. Может, я что-то делаю не так?
Предполагаю, что вы делаете не так. Только что проверил, у меня получилось то что вы хотели.
Думаю, что у вас не вышло потому, что вы хотите коппилировать файл AutoIt3Wrapper.au3 в AutoIt3Wrapper.exe, но забыли, что AutoIt3Wrapper.exe в данный момент у вас используется. Просто компилируя в этот раз, делайте это через AutoIt3Wrapper_Gui.exe, выбирая другое (не AutoIt3Wrapper.exe)имя конечного файла, а потом переменуете в AutoIt3Wrapper.exe.
Но если и это не поможет, то уже точно возьмите AutoIt3Wrapper старой версии, но не забудьте проверить, что в новом файле au3.properties команды - выполнить, собрать, компилировать у вас имеют теже команды на выполнение, что у вас было в старом файле au3.properties.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
kasper_sky [?]
нам друг друга не понять
Ошибаешься, это тебе сложно понять о чём я пишу.

Я прекрасно понимаю желание сделать то что хочется, но я пытаюсь тебе донести то что сам понял за время своего знакомства с AutoIt.
Язык ограничен касательно отладки, и от этого пока что никуда не деться.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
kasper_sky
kasper_sky сказал(а):
А ошибок не будет при проверке? Например, ошибок синтаксиса.
Так ведь AU3Check проверяет ошибки, а AutoIt3Wrapper только выводит на экран.
 
Автор
K

kasper_sky

Antivirus
Сообщения
116
Репутация
1
Проблема решилась заменой текущего AutoIt Wrapper на Wrapper от AutoIt версии 3.3.6.1
Всем спасибо.
 
Верх