Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.032 c
2-1170688939
di22222
2007-02-05 18:22
2007.02.25
Вопрос по автоматизации редактирования html-страницы


15-1170559011
Лирик
2007-02-04 06:16
2007.02.25
Шарик падает вдоль стенки и начинает её касаться без проскальзыва


9-1144640430
Ландграф Павел
2006-04-10 07:40
2007.02.25
поиск пути не по клеткам (массив из rect)


3-1165228520
O.O
2006-12-04 13:35
2007.02.25
Узнать значение


1-1168098557
Kolan
2007-01-06 18:49
2007.02.25
Синглетон. Кто его должен удалять?