Если за ошибку в расчете отвечает больше
одного человека, виноватых не найти.
Из законов Мерфи
Наша программа страдает существенным недостатком: если в поле ввода вместо числа ввести, скажем, "Вася", программа "свалится" с выдачей сообщения об ошибке (проверьте!) Оно и понятно – функция 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.