![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка исключения [D7, XP]
neat © (2005-12-23 08:27:00)Здравствуйте Все! Создал простой пример для проверки кода, но работа программы останавливается на строке e := m/d с выдачей сообщения об исключительной ситуации EZeroDevide, хотя именно его я и пытаюсь обойти, создав свой обработчик. Не пойму в чём дело. Что не правильно ?
var m, d : word;
e : real;
begin
m := 100;
d := 0;
try
e := m/d;
Edit1.Text := FloatToStr(e);
except
MessageDlg('Деление на ноль !', mtError, [mbOk], 0);
end;
Плохиш (2005-12-23 11:25:00) [1]
> ведь не должно было после ввода конструкции try...except.
Это ты где-то прочитал или сам придумал?
neat (2005-12-23 11:18:00) [2]evvcom , так и было, мне было не понятно, почему сообщение отладчика вообще появляется (перед моим), ведь не должно было после ввода конструкции try...except. Прошу прощения, по-моему уже всё ясно, не будем больше время тратить на это обсуждение.
evvcom (2005-12-23 10:59:00) [3]
> а в том, что не работала конструкция try...except
она работала, просто отладчик ловил это исключение и сообщал тебе об этом, чтобы ты обратил внимание и поправил. Если поставить бряк на строке в except и далее F9, то увидишь, что отладчик потом там остановится.
neat (2005-12-23 10:12:00) [4]evvcomблагодарю за совет, но дело было не в этом самом нуле, а в том, что не работала конструкция try...except и я никак не мог понять в чём дело. А проверки, типа предложенной тобой, я конечно использую.
evvcom (2005-12-23 09:25:00) [5]Но лучше эту галку не снимать, а в своем коде, если ожидаешь ошибки, ее предотвратить типа
if d = 0 then begin
MessageDlg('Деление на ноль !', mtError, [mbOk], 0);
Exit;
end
else
e := m/d;
чем допускать исключение
neat (2005-12-23 09:15:00) [6]Нашёл, снял, работает! Спасибо Digitman
Digitman (2005-12-23 09:06:00) [7]в настройках Делфи сними галку Stop On Delphi Exceptions