Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Вниз

Непонятно отчего ошибка раз... неясно почему она не обрабатывается :( 


$Hic0   (2002-03-26 16:24) [0]

Есть кусок кода

procedure TForm1.Timer4Timer(Sender: TObject);
var tmpX : double;
i: byte;
begin
//-------Вывод графика отклонения от целевого угла
With Series3 do
begin
try
tmpX:=XValues.Last-XValues[0];
AddXY(XValues.Last+tmpX,Round(180*f/Pi));
except on EOverflow do Begin
tmpX:=0;
Replace;
Series3.Clear;
For i:=0 to 30 do Series3.AddXY(i,Random(20));
end;
end;
Delete(0);

end;
//-------------------------------------------------
end;

Т.е. выводится график, значения которого пересчитываются при каждом обращении к таймеру... сначала все идет хорошо, но со временем вылетает ошибка переполнения... переполнения чего непонятно :( Накопления как видите здесь нет :( Самое интересно интераптер останавливая программу не становится на ту строчку кода которая вызвала ошибку хотя обычно он, как вы знаете, такие вещи делает :). Ошибка точно в этому куске, т.к. закоментировав процедуру все работает как надо... это все хорошо. Теперь когда я собираюсь обрабатывать ее руками и как видите обрабатываю присвайивая всем переменным по нулям для начала. Процедура Replace занимается как раз этим. Очищаю полностью Сериес и заполняя его новыми случайными значениями. Усе равно, такое ощущение что он этого куска просто не видет. В пошагоовом режиме, отладчика поцедура просто пропускается :(
Может кто сталкивался? В чем собака зарыта? :)



$hiC0   (2002-03-26 16:57) [1]

Так что никто не знает что-ли? :)) Человки, будьте милосердны, хотя-бы предположите что-нить :) Я вам спасибо скажу :)



Johnmen   (2002-03-26 17:08) [2]

Интересно все же содержание сообщения об ошибке...



$hiC0   (2002-03-26 17:15) [3]

Project Control.exe raised exception class Eoverflow with message "Floating point overflow". Process stopped. Use Step or Run to continue.

Буквально вот-так :)



$hiC0   (2002-03-26 18:13) [4]

Ну же люди, в чем Баг? :(



oomneeq   (2002-03-26 18:21) [5]

>AddXY(XValues.Last+tmpX,Round(180* f/Pi));

а f - чо такое?
при его запредельных значениях запросто можно получито оверфлоу



Eug201   (2002-03-26 18:22) [6]

Могу предположить, что ошибка возникает внутри on EOverflow, или этого не может быть?



$hiC0   (2002-03-26 18:28) [7]

f - значение угла в радианах, я все проверил перепроверил :) изменение от -1.57 до +1.57. Т.е. От -90 до +90 говоря человечееским языком :)).
Eug201 >
Могу предположить, что ошибка возникает внутри on EOverflow, или этого не может быть?

Вроде нет не может. Потому что кусок

Series3.Clear;
For i:=0 to 30 do Series3.AddXY(i,Random(20));

выполняется программой без ошибок в самом начале при событии OnCreat основной формы.
Процедура Replace; также очень часто вызывается из основной программы и она не глючная, там просто всем переменным присваются нулевые значения.... надо было ее Init назвать :)


oomneeq > а f - чо такое?
oomneeq > при его запредельных значениях запросто можно получито oomneeq > оверфлоу

Даже если допустить что это так, так какого ..... спрашивается не срабатывает обработчик??? Может где галочки какие надо выставить в настройках компилятора? Тьфу-ты...
ПОМОГИТЕ ПЛЗ... зашиваюсь, встал перед этой проблемой как честно слово баран какой-то :(((




oomneeq   (2002-03-26 18:49) [8]

Значит там не EOverflow а какойто другой эксепщн
сделай так:

except on E:EOverflow do Begin
tmpX:=0;
Replace;
Series3.Clear;
For i:=0 to 30 do Series3.AddXY(i,Random(20));

end;
on E:Exception do
begin
Showmessage(E.Message)
end;





$hiC0   (2002-03-26 19:37) [9]

Ребят, самое интересное сказать? :)
Я ведь и раньше с такой траблой сталкивался. Обработчик начинает работать когда чел одельно из под фоточек запускает ехешник, а до тех пор возникающие ошибки не обрабатываются трай-ексептом :)
Мысль возникла запустить отдельно от Дельфей свей хозяйство :)) Заработал обработчиак, как миленький :) Спаибо ребята!
:)



aus   (2002-03-26 20:36) [10]

>а до тех пор возникающие ошибки не обрабатываются трай-ексептом

Обрабатываются, просто тебе сообщение выдается во время отладки, которое можно отключить в Project-Options....




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.022 c
4-22885           Керик                 2002-02-07 04:51  2002.04.08  
Как создать процесс с параметром?


3-22598           Val                   2002-03-14 14:20  2002.04.08  
Еще одно поле в Query


1-22756           Aleksandr             2002-03-27 11:29  2002.04.08  
Никто не в курсе, в каких случаях появляется такое исключение?


1-22699           SPeter                2002-03-26 16:57  2002.04.08  
Как работать со свойством Shift:TShiftState.


1-22751           Art1                  2002-03-25 14:19  2002.04.08  
Что нужно для ActiveX?