1
Ваши вопросы / Re: Integer overflow
« : 13 Марта 2026, 07:24:28 »
Здравствуйте.
для начала нужно разделить ошибки функции и аргумента
. Для отлова ошибок (особенно редких) можно изменить скрипт:Сообщение об ошибке будет в журнале сервера и, в несколько более детальном виде, в выделенной группе сообщений.
Проект контроля переполнений из примера можно не подключать к БД, при просмотре группы сообщений будет выдано предупреждение, но поступающие сообщения будут отображаться.
для начала нужно разделить ошибки функции и аргумента
Код: (delphi)
j := AsInt*60; // var j: integer;
Text := SecondsToStr(j);
Цитировать
Предполагаем, что именно 51000 вызывает переполнение."Кофейная гуща" не поможет выявить ошибку
. Для отлова ошибок (особенно редких) можно изменить скрипт:Код: (delphi)
begin
if Sender is TM_Text then // проверяем, что Sender это текст
with Sender as TM_Text do // приводим Sender к типу "TM_Text"
try
Text := SecondsToStr(AsInt*60);
except
AddMessageToGroup(now, mkAlarm, 1, 'ошибка: объект ' + Name + ' переменная '
+ Variable.Name + ' = ' + AsStr + ' * 60 = ' + IntToStr(int64(AsInt) * 60)
, true, false);
end;
end.
Проект контроля переполнений из примера можно не подключать к БД, при просмотре группы сообщений будет выдано предупреждение, но поступающие сообщения будут отображаться.
