-
#1
скомпелированый скрипт иногда выдает такую вот ошибку
(14670) : ==> Subscript used with non-Array variable.:
14670 – это я так понимаю строка где ошибка, но у меня в скрипте гораздо меньше строк. Я так понимаю это строка в бинарном файле, а как мне ее сопоставить со строкой в скрипте?
запускать как скрипт не хотелось бы.
ivsatel
Продвинутый
- Сообщения
- 319
- Репутация
- 84
InnI
AutoIT Гуру
- Сообщения
- 4,870
- Репутация
- 1,408
-
#3
mitiya [?]
у меня в скрипте гораздо меньше строк. … а как мне ее сопоставить со строкой в скрипте?
Эта строка получается так. В скрипте вместо каждого #include подставляете содержимое соответствующего файла. Если в тех файлах есть #include, то нужно тоже подставить содержимое, учитывая #include-once. Затем нужно удалить все пустые и закомментированные строки, а строки с переносами преобразовать в одну строку. Короче, довольно трудоёмкий процесс.
- Сообщения
- 2,849
- Репутация
- 1,179
-
#4
InnI
Думаю это ещё не всё, ещё комментарии все удалить, возможно лишние переносы строк. Часть этой работы автоматически делает AutoIt3Wrapper+Obfuscator. Комментарии удалить скриптом. Я уже делал такие варианты исходников, если стандартное компилирование вызывает ошибку.
mitiya
Используй рег. выр. для поиска всех вхождений переменной массива. Может рег. выр. используется без проверки на ошибку а потом из него берётся элемент массива. Вполне частая ошибка для новичка.
Astel064
Помог мой пост, ставь +!
- Сообщения
- 276
- Репутация
- 51
-
#5
Тоже часто сталкивался раньше с такой проблемой и решил написать небольшую “утилиту” для таких случаев. Она запишет в лог что включается в данный момент (#Include) и запишет последнюю функцию, которая выполняется. А также запишет номер строки, которую он выполнил последнюю.
Вот ссылка на закачку (с Яндекс.диска), т.к. на форуме ограничение в 200 кб… http://yadi.sk/d/6u8k8Z203_Dua
Перетащи скрипт на значок AutoIt3_Debugger.exe и выбери параметры.
CreatoR
Must AutoIt!
Команда форума
Администратор
- Сообщения
- 8,670
- Репутация
- 2,476
12.01.09 – 16:02
При формировании отчета о среднесписочной числинности вылетает ошибка
ДокументОснование = ТаблицаНачисленийУдержаний.ПолучитьЗначение(1, “Документ”);
{Отчет.СреднесписочнаяЧисленность.Форма.Модуль(557)}: Номер за пределами значения!
Как её исправить? Помогите
1 – 12.01.09 – 16:03
А что говорит товарищ Отладчик?
2 – 12.01.09 – 16:04
(0) проверить трайсером содержимое ТаблицаНачисленийУдержаний. Походу – она пустая.
3 – 12.01.09 – 16:04
Вылетает на человеке у которого отпуск по уходу за ребенком
4 – 12.01.09 – 16:06
(2) что такое трайсер?
5 – 12.01.09 – 16:11
(3) а что с этим челом делать ума не приложу
6 – 12.01.09 – 16:13
(5) Убей. “нет человека – нет проблемы…”©
7 – 12.01.09 – 16:18
Убить??? )))
8 – 12.01.09 – 16:19
а если серьезно? что это может быть?
9 – 12.01.09 – 16:36
Если ТаблицаНачисленийУдержаний.КоличествоСтрок() = 0 Тогда
ДокументОснование = ПустоеЗначение(“Документ”);
Иначе
ДокументОснование = ТаблицаНачисленийУдержаний.ПолучитьЗначение(1, “Документ”);
КонецЕсли;
10 – 12.01.09 – 16:51
(9) тогда следующая ошибка
ДатаДосрочногоВыходаНаРаботу = ДокументОснование.ДатаВыходаНаРаботу;
{Отчет.СреднесписочнаяЧисленность.Форма.Модуль(564)}: Значение не представляет агрегатный объект (ДатаВыходаНаРаботу)
это следующая строчка модуля
11 – 12.01.09 – 16:52
вот весь код модуля
Если ТекущийРасчетИзЖурнала = ВидРасчета.ПособиеПоУходуЗаРебенкомФЗП Тогда
ТаблицаНачисленийУдержаний = “”;
глВидРасчетаДействует(Сотрудник, ТекущийРасчетИзЖурнала,
ЖурналРасчетовЗарплата.ДатаНачала, ЖурналРасчетовЗарплата.ДатаОкончания, ТаблицаНачисленийУдержаний);
ДокументОснование = ТаблицаНачисленийУдержаний.ПолучитьЗначение(1, “Документ”);
ДатаДосрочногоВыходаНаРаботу = ДокументОснование.ДатаВыходаНаРаботу;
КонецЕсли;
12 – 12.01.09 – 16:52
(10) Тут уже ничего не сделаешь.
13 – 12.01.09 – 16:52
(10) нету документа основания…
14 – 12.01.09 – 16:54
документ есть
15 – 12.01.09 – 16:54
но видимо в нем какой-то косяк, да?
16 – 12.01.09 – 16:55
(14) Ну нету… НЕТУ!!!
Отладчиком смотрел?
17 – 12.01.09 – 16:56
После (4) совет может быть только один — пригласить специалиста.
18 – 12.01.09 – 16:56
)))
19 – 12.01.09 – 16:56
(17) Просто ошибка там, где и обычно…
20 – 12.01.09 – 17:02
эээ… тогда вопрос… А документ на прием на работу у него есть ?
21 – 12.01.09 – 17:04
(20) Достижения (опыт) их слишком много, чтобы уместились здесь
нуну
22 – 12.01.09 – 17:06
(20) есть конечно, но ошибка видимо не в приеме на работу, а в отпуске по уходу за ребенком
23 – 12.01.09 – 17:06
нужен предыдущик код, где заполняется ТаблицаНачисленийУдержаний
24 – 12.01.09 – 17:07
Если ТаблицаНачисленийУдержаний.КоличествоСтрок() = 0 Тогда
ДокументОснование = ПустоеЗначение(“Документ”);
ДатаДосрочногоВыходаНаРаботу = ”;
Иначе
ДокументОснование = ТаблицаНачисленийУдержаний.ПолучитьЗначение(1, “Документ”);
ДатаДосрочногоВыходаНаРаботу = ДокументОснование.ДатаВыходаНаРаботу;
КонецЕсли;
ошибку то вот так можно закрыть.
25 – 12.01.09 – 17:08
сейчас попробую
26 – 12.01.09 – 17:09
ищи условие по которому сотрудник не попадает в выборку…
27 – 12.01.09 – 17:10
(19) Лажает твоя теория 😉
28 – 12.01.09 – 17:11
(27) Нет. Дятлы есть везде. Просто статистически их больше в определенных диапазонах….
29 – 12.01.09 – 17:14
(24) ошибку пропустил, спасибо!!!
30 – 12.01.09 – 17:14
Повторюсь, эпидемия не ограничивается одним 1986-ым:
1966 г. – авария на ядерном реакторе в г. Мелекессе. Получили облучение начальник смены и дозиметрист;
1964-1974 гг. – неоднократное разрушение тепловыделяющих сборок активной зоны реактора на 1-м блоке Белоярской АЭС;
7 января 1974 г – взрыв на 1-м блоке железобетонного газгольдера (стальное сооружение для выдержки газообразных радиоактивных отходов) Ленинградской АЭС;
6 февраля 1974 г – разрыв промежуточного контура на 1-м блоке Ленинградской АЭС. Погибли три человека;
1975 г – частичное разрушение активной зоны реактора на 1-м блоке Ленинградской АЭС. В окружающую среду было выброшено около 1,5 млн. Ки высокоактивных радионуклидов;
1977 г – расплавление 50% тепловыделяющих сборок активной зоны реактора на 2-м блоке Белоярской АЭС. Ремонт, сопровождающийся переоблучением персонала, длился около года;
1982 г – авария на 1-м блоке Чернобыльской АЭС с радиоактивным выбросом (в районе станции и г. Припять.);
1985 г – авария на 1-м блоке Балаковской АЭС. Погибли 14 человек.
http://www.iss.niiit.ru/book-7/glav-2-2.htm
31 – 12.01.09 – 17:15
(30) это ты к чему? ))
32 – 12.01.09 – 17:15
(29) ну и ладныть тады…
33 – 12.01.09 – 17:15
(31) его пучит
34 – 12.01.09 – 17:15
))))))
Mikeware
35 – 12.01.09 – 17:16
(30) Да и естественных источников хватает… Мутации – вещь не обязательная, а вероятностная…
Курсы повышения квалификации.
Как читать логи.
Пособие для чайников.
Часть 1: Ищем ошибку
Сама ошибка начинается после at
Пример лога:
java.lang.RuntimeException: Failed to load bukkit events (not fatal) at com.cricketcraft.chisel.Chisel.<clinit>(Chisel.java:65) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:420) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) Причина ошибки после Caused by: Caused by: java.lang.NullPointerException
Где ошибка, это:
java.lang.NullPointerException
Внимание! В одном логе может быть несколько “Caused by”. Рядом с ними обычно есть надпись (not fatal) (Перевод с английского: не смертельно), располагающаяся выше, над всеми “at”. Нужная ошибка должна быть ближе к концу лога и без надписи (not fatal).
Советы знаменитого капитана Ясен Красен:
Сочетание клавиш Ctrl+F может вызвать окно поиска в таких местах, о существовании которых вы даже не подозревали. Используя поиск, можно быстро и легко найти нужные слова, даже в многотомных произведениях мировой литературы, не говоря уже про логи ошибок.
Ещё неплохо помогает наличие программы Notepad++, с помощью которой можно быстро находить ошибки хоть в 20 логах одновременно.
Пример (из данного лога):
at net.minecraft.world.World.func_72939_s(World.java:1851) ~[ahb.class:?] at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1995) ~[bao.class:?] at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:962) ~[bao.class:?] at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:887) [bao.class:?] at net.minecraft.client.main.Main.main(SourceFile:148) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45] at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45] at r.IIIiIiIiiiI.<init>(io:77) [launcher.jar:?] at r.IIIiIiIiiiI.main(io:71) [launcher.jar:?] Caused by: java.lang.NoSuchMethodError: ic2.core.audio.AudioManager.getDefaultVolume()F
Причина ошибки:
java.lang.NoSuchMethodError
Часть 2: Устранение ошибки
Наиболее популярные ошибки и методы их исправления
Ошибка.
Рекомендации.
org.lwjgl.LWJGLException: Pixel format not accelerated
Обновить драйвера видеокарты.
java.lang.OutOfMemoryError
Уменьшить кол-во выделенной оперативной памяти.
java.lang.NoSuchMethodError
Обновить клиент. Если это не помогло, у разработчика мода руки из задницы – писать Тех.Администратору. Ну или мне.
java.io.EOFException: null
(в лаунчере)
Отключить антивирус/брандмауэр/блокировщик рекламы (AdBlock)
java.net.ConnectException: Connection timed out: connect
(в лаунчере)
Отключить антивирус (или удалить этот чёртов др.Веб), после скачивания добавить лаунчер в исключения
java.lang.NullPointerException
У разработчика мода руки из задницы. Писать TheStalkerNet”у
Советы знаменитого капитана Ясен Красен:
“Если игрок не может предоставить внятное описание и/или лог. Пройти курсы по открытию третьего глаза.”
Провести очистку мозга от нубопорчи.
Помогите пожалуйста, знаний не хватает
Найдите ошибки, определите причину каждой и исправьте предложения:
1. Порадуемся вторым местом Ольги Зайцевой.
– Порадуемся второму месту Ольги Зайцевой (Ошибка -Нарушение согласования в словосочетании, главное?? (зависимое??) слово в другом падеже ????)
2. Я думаю, что несколько интересных фигур на достаточно ключевые должности от “Яблока” будут уже при первой новой президентской власти.
– Я думаю, что несколько интересных кандидатур на ключевые должности от партии “Яблоко” будут выдвинуты новой президентской властью. (как-то так, только что за ошибки?? Речевые? тавтология??? (первой новой, достаточно ключевые))
3. Нерадивый студент молчал у доски как рыба об лед.
– Нерадивый студент молчал у доски словно воды в рот набрал. (Ошибка – неуместное употребление фразеологизма?)
4. Главная бухгалтерия обслуживает теперь тринадцать детских садов и двадцать два яслей.
– Главная бухгалтерия обслуживает теперь тринадцать детских садов и ясли в количестве двадцати двух штук.
либо – Главная бухгалтерия обслуживает теперь тринадцать детских садов и двадцать два ясельных учреждения. (????? )
(Ошибка: Грамматическая, при соединении составного числительного оканчив. на 2,3,4 с существительными имеющими только множественное число (сутки, ясли, ножницы) возникает синтаксическая несочетаемость, можно заменить слово либо грамматический строй предложения)
5. У военных усиливается озабоченность за безопасность границ (мое любимое предложение с выражением усиливается озабоченность!!!)
– У военных нарастает (усиливается) тревога за безопасность границ? вид ошибки – речевая Неуместное употребление слова в несвойственном ему значении???
6. Первая трудность произошла со стройматериалами.
– Первая трудность возникла со стройматериалами. (вид ошибки – речевая Неуместное употребление слова в несвойственном ему значении??? )
Спасибо, если кто поможет, мне просто нужна четкая формулировка ОШИБКИ.