Обработка ошибок

Если за ошибку в расчете отвечает больше

одного человека, виноватых не найти.

Из законов Мерфи

Наша программа страдает существенным недостатком: если в поле ввода вместо числа ввести, скажем, "Вася", программа "свалится" с выдачей сообщения об ошибке (проверьте!) Оно и понятно – функция FloatToStr не может преобразовать "Васю" в вещественное число. В Delphi реализован очень элегантный механизм реакции на ошибки в программе при помощи оператора TRY..EXCEPT..END. Вот его общий вид:

TRY

здесь может произойти ошибка

EXCEPT

эти команды выполняются, если ошибка произошла

END;

Применим данный оператор в нашей процедуре:

procedure TForm1.Button1Click(Sender: TObject);

var a,b,c:real;

Begin

Try

a:=StrToFloat(LabeledEdit1.Text);

b:=StrToFloat(LabeledEdit2.Text);

c:=SQR(a+b)

Except

Label1.Caption:='Неверные данные';

Exit

end;

Label1.Caption:=FoatToStr(c)

end;

Оператор Exit вызывает досрочный выход из всей процедуры. Если бы его не было, оператор Label1.Caption:=FoatToStr(c) выполнятся бы в любом случае, так как он никак не связан с оператором try.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: