ошибке в коде. Autoit не проверяет работоспособность программы при компиляции, только синтаксис. Поэтому ошибка вроде несовпадения типов данных может проявиться спустя пару дней после того как вы отладили код. Для фоновой программы это особенно критично.
Проблему я решил тем грязнейшим хаком, ссылка на который выкладывалась выше. При крэше бот перезапускался, и мне приходило сообщение.
Второе. Программу хер отладишь. Отладчиков, которые позволяют посмотреть состояние памяти, просто нет. Программа крэшнулась? Хер знает почему, смотри msgbox. Прицепить отладчик к зависшему процессу? Хуй. Только ConsolePrint, только хардкор.
Третье. Telegram UDF периодически вызывал крэши и глотал сообщения. Первое я установил экспериментально — написал простенький однострочник, который вызывал getUpdates раз в секунду и оставил его на ночь. Проработал он полчаса. Я долго разбирался, чо это за нах, точно помню что не одну функцию в udf правил и даже кое-что переписывал. Вот кстати, пропал инет? Лови msgbox. Процент вылетов я снизил, но стабильности не добился. Дошло до того, что я установил, что есть какой-то баг с парсером json — он неверно парсил часть ответов от сервера, небольшую, но если делаешь getUpdates регулярно, то вы поняли, да.
В один прекрасный момент я проснулся утром, увидел что за ночь бот прислал порядка тыщи сообщений о рестартах, психанул и снес его к хуям собачьим, а все исходники удалил.
обработчик ошибок нужно было включить
Чо только не сделают, лишь бы нормальный язык не взять
Обсуждают сегодня