Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
ВнизОбработка Eoverflow - как? Найти похожие ветки
← →
R2D2 (2003-05-11 10:23) [0]Я только начал разбираться с обработкой исключений, поэтому не могу понять почему, не смотря на использование try..except вылетает сообщение о исключительной ситуации... Как это можно поправить? :)
Вот мой вариант обработки:
try
tanH_bnH:=VarAsComplex(VarComplexTanH(VarAsComplex(bn)*h));
except
on EOverflow do
begin
if VarAsComplex(bn).Real>0 then
tanH_bnH:=VarComplexCreate(1,0) else
tanH_bnH:=VarComplexCreate(-1,0);
end;
end;
А если коротко - требуется подменить значение переменной в случае Overflow
← →
Song (2003-05-11 10:26) [1]Такие исключение лучше не ловить, а исправлять глюк в программе, иначе можншь получить один большой глюк.
Если по существу, то on EOverflow do - лишнее.
← →
R2D2 (2003-05-11 10:33) [2]А разве есть способ узнать о том, что будет переполненние до исполнения кода (тобишь без использования try...except)?
← →
Song (2003-05-11 10:42) [3]Нет, а разве я сказал, что можно?
← →
R2D2 (2003-05-11 10:46) [4]Последний вопрос перед снесением try...except и установкой if x>1000000 then bla-bla-bla :)) :
"Если по существу, то on EOverflow do - лишнее." - т.е. оставить так? :
try
tanH_bnH:=VarAsComplex(VarComplexTanH(VarAsComplex(bn)*h));
except
begin
if VarAsComplex(bn).Real>0 then
tanH_bnH:=VarComplexCreate(1,0) else
tanH_bnH:=VarComplexCreate(-1,0);
end;
end;
Все равно вылетает сообщение об ошибке....
← →
Song (2003-05-11 10:50) [5]Убери в настройках Debuggerа опцию "Останавливаться на исключениях Дельфи"
← →
R2D2 (2003-05-11 10:54) [6]Огромное спасибо - работает !!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c