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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2010, 23:48   #1
Kati
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 34
Вопрос Обработка исключений try... except

Не работает try... except. Помогите найти ошибку.

procedure TForm1.Button17Click(Sender: TObject);
var k1,k2,n:real;
Y1,Y2:real;
begin
try
k1:=StrToInt(Edit26.Text);
k2:=StrToInt(Edit27.Text);
n:=StrToInt(Edit28.Text);
Y1:=(100*k1)/n;
Y2:=(100*k2)/n;
Edit29.Text:=FloatToStr(Y1);
Edit30.Text:=FloatToStr(Y2);
except
on EZeroDivide do
begin
ShowMessage('Делить на ноль нельзя!');
exit;
end;
on EconvertError do
begin
ShowMessage('Значения должны быть числовыми');
exit;
end;
end;
Kati вне форума Ответить с цитированием
Старый 07.03.2010, 00:38   #2
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

ну в вашем случае не хватает только закрывающего end. Запустите exe ошибка будет обрабатываться. При запуске в среде делфи может выдать ошибку
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]

Последний раз редактировалось Volt; 07.03.2010 в 00:52.
Volt вне форума Ответить с цитированием
Старый 07.03.2010, 00:51   #3
Kati
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 34
По умолчанию

В том то и дело что хватает(скопировала без него). Программа работает. Но когда пытаюсь ввести 0, или не числовые символы за место сообщения программа вылетает.
И ругается на EZeroDivide.
Kati вне форума Ответить с цитированием
Старый 07.03.2010, 01:13   #4
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

в вашем варианте нет end каторый закрывает except без него не запустится. Исключение EZeroDivide возникает при деление на нуль тоесть в вашем случае если Edit28.Text равно нулю. ну и плюс выше сказаное запускайте вне среды то есть скомпилированы exe
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
Volt вне форума Ответить с цитированием
Старый 07.03.2010, 01:21   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

попробуйте полученную программу запустить НЕ ИЗ СРЕДЫ Delphi
тогда всё будет работать с перехватом exception

Если же хотите, чтобы и в среде Delphi программа не останавливалась на исключениях, тогда
главное меню Delphi - Tools - Debugger Option -
закладка "Language Exceptions" убрать "птичку" с "Stop on Delphi Exceptions"
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.03.2010, 10:18   #6
Kati
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 34
По умолчанию

Огромное спасибо за помощь! Все работает!
Kati вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mysql_connect - обработка исключений crazy horse PHP 15 10.02.2009 13:52
Обработка исключений ввода в TMaskedEdit joker Общие вопросы Delphi 8 11.06.2008 15:02
обновление в блоге - Обработка исключений в Delphi Pblog Обсуждение статей 0 11.09.2007 18:40