Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2011, 20:57   #1
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
Радость Где ошибка?

Наипростейший код:
Код:
begin
 x:=strtofloat(edit1.text);
 y:=strtofloat(edit2.text);
 try
 z:=x/y;
 except

  z:=0;
 end;
 edit3.text:=floattostr(z);
end;
Выводит ошибку о делении на ноль.
Делаю так:

Код:
begin
 x:=strtofloat(edit1.text);
 y:=strtofloat(edit2.text);
 try
 z:=x/y;
 except
on EZeroDivide do
  z:=0;
 end;
 edit3.text:=floattostr(z);
end;
Результат тот же. Блок try..finally работает, а try...except нет. В чем дело?
<--Жми на весы

Последний раз редактировалось Stilet; 06.01.2011 в 13:54.
Vaigard вне форума Ответить с цитированием
Старый 02.01.2011, 21:25   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Выводит ошибку о делении на ноль.
Наверное на этапе отладки? (при запуске из Delphi по F9). Тогда все правильно. Попробуйте откомпилировать и запустить exe-шник через эксплорер.

А почему нельзя
Код:
x := StrToFloat (Edit1.Text);
y := StrToFloat (Edit2.Text);
if y = 0 then
  Edit3.Text := 'Деление на нуль'
else begin
  z := x/y;
  Edit3.Text := FloatToStr(z);
end;
?
Sibedir вне форума Ответить с цитированием
Старый 03.01.2011, 13:11   #3
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
По умолчанию

Дело не в работе программы, а в использовании try...except. Для некоторых моментов нельзя перебирать значения через if...then. А exe-шник действительно работает. Спасибо)
<--Жми на весы

Последний раз редактировалось Vaigard; 03.01.2011 в 13:15. Причина: Надо дописать.
Vaigard вне форума Ответить с цитированием
Старый 03.01.2011, 14:54   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Vaigard

просто на будущее. поведение IDE Delphi (перехватывать экспепщены или нет) настраивается:

главное меню программы - Tools - Debugger Options
третья закладка (Language Exceptions) -
убрать птичку на [ ] Stop on Delphi Exceptions
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.01.2011, 16:12   #5
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
По умолчанию

Хех, весело)
<--Жми на весы
Vaigard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка? T-dayne Помощь студентам 2 10.02.2010 16:52
Где ошибка? stas77 Microsoft Office Excel 11 02.11.2009 18:26
Где ошибка: Egik_net Microsoft Office Access 6 26.10.2009 00:43
Где ошибка? [Smarik] Общие вопросы Delphi 5 01.04.2008 09:56