Текущий архив: 2007.02.25;
Скачать: CL | DM;
ВнизНе ловится исключительная ситуация: Найти похожие ветки
← →
smaller (2007-02-07 15:18) [0]try
Y:= 0;
Z:= X/Y;
except
on EDivByZero do begin
if MessageDlg (" Деление на ноль ",
mtError, [mbAbort],0) = mrAbort then EXIT;
end
end;
Сообщения не появляется, программа вываливается в Debugger.
В чем тут м. быть дело?
← →
Сергей М. © (2007-02-07 15:21) [1]
> Не ловится исключительная ситуация
Врешь, ловится.
← →
DiamondShark © (2007-02-07 15:23) [2]
> Сообщения не появляется, программа вываливается в Debugger.
а если F9 нажать?
← →
novill © (2007-02-07 15:30) [3]> [0] smaller (07.02.07 15:18)
1. запустить программу не из дельфи
2. подумать
3. Если не получился п.2 почитать справку
← →
smaller (2007-02-07 15:30) [4]Здесь вроде трудно ошибиться - по моему, здесь нужно ожидать появления Message (на фоне моего приложения) а его нету - при этом программа прерывается
← →
sniknik © (2007-02-07 15:32) [5]Z не используется? может быть выкинут оптимизатором, вместе с делением...
← →
sniknik © (2007-02-07 15:39) [6]+, выполни
procedure TForm1.Button1Click(Sender: TObject);
var X, Y, Z: double;
begin
try
Y:= 0;
Z:= X/Y;
ShowMessage(FloatToStr(Z));
except
on E: Exception do ShowMessage(E.ClassName);
end;
end;
← →
novill © (2007-02-07 15:48) [7]> [4] smaller (07.02.07 15:30)
Попробуй ;)var x,y,z:double;
begin
try
x:=1;
Y:= 0;
Z:= X/Y;
ShowMessage(FloatToStr(Z));
except
on EDivByZero do begin
if MessageDlg (" Aaeaiea ia iieu ",
mtError, [mbAbort],0) = mrAbort then EXIT;
end;
on e:exception do ShowMessage("Error classname "+e.ClassName+" with message "+e.Message);
end;
end;
← →
smaller (2007-02-07 15:49) [8]DiamondShark- у
F9 - а когда его нажимать - все время что-ли держать
novill- у
1. Если запустить программу не из Дельфи, тогда cистема делает замечание, что произошло деление на ноль, мое сообщение при этом не показывается
2. Подумав, можно сказать, что может быть надо как-то настроить Debugger или еще что-то в среде - чтобы прерывание сообщающее о делении на ноль обрабатывалось в программе, а не в среде или в системе
3. Справку читал - около часа, но ничего полезного не нашел
Z тут не при чем, проверил
← →
smaller (2007-02-07 16:07) [9]Sniknik - у
Этот код я проверил - результат тот же самый - программа прерывается, Debugger делает замечание.
← →
Сергей М. © (2007-02-07 16:11) [10]
> Debugger делает замечание.
>
Опция дебагера Stop On Delphi exceptions для пушкина писана ?
← →
sniknik © (2007-02-07 16:27) [11]> Этот код я проверил - результат тот же самый - программа прерывается, Debugger делает замечание.
этот код не решение твоей проблемы (она как таковая не озвучена), а показать класс эксепта для сравнения с тем что ловишь ты, в том коде что показан ...
если твоя программа прерывается и не может продолжить (не доходит до сообщения) выполни его в новой программе, сделанной специально для данного кода...
← →
RASkov (2007-02-07 17:44) [12]> [9] smaller (07.02.07 16:07)
Не тот Exception обрабатываешьprocedure TForm1.Button1Click(Sender: TObject);
var X,Y,Z: Extended; N: Integer;
begin
try
Y:= 0;
X:=1;
Z:= X/0;
N:=Round(Z);
except
on EZeroDivide do begin
if MessageDlg ("Деление на ноль", mtError, [mbAbort],0) = mrAbort then EXIT;
end;
end;
end;
Все нормально, после вылета в дебагер (если Stop On Delphi exceptions) жми F9 и твой обработчик сработает
← →
RASkov (2007-02-07 17:46) [13]> Z:= X/0;
Z:= X/Y;
← →
smaller (2007-02-07 20:33) [14]Благодарю всех за помощь - проблему решил!
Моих две ошибки:
1.не настроил Debugger
2.использовал EDivByZero вместо EZeroDivide
Спасибо ...
← →
vrem (2007-02-07 20:45) [15]поймал, да? :)
← →
RASkov (2007-02-07 21:16) [16]> [14] smaller (07.02.07 20:33)
> 1.не настроил Debugger
А дебагер лучше не трогать, имхо, он кстати и подсказывает какой Exception вылетает...
Имеею ввиду Stop On Delphi exceptions.
> [15] vrem (07.02.07 20:45)
Одному трудно ловить, а толпой в угол загнали :)
← →
Германн © (2007-02-08 01:36) [17]
> Одному трудно ловить, а толпой в угол загнали :)
Вспомнил Ketmar"а. Точнее одну из его любимых книг. :(
← →
RASkov (2007-02-08 06:33) [18]> Вспомнил Ketmar"а.
Кстати, без него как-то скучно..., а куда он делся?
Страницы: 1 вся ветка
Текущий архив: 2007.02.25;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.055 c