Свойство Message

Класс Exception

On EConvertError do begin

Except

Try

//=== Преобразование входных данных ===

a:= StrToFloat(edA.Text); { Текст из поля edA преобразовать в Float }

b:= StrToFloat(edB.Text); { Текст из поля edB преобразовать в Float }

//=== Вычисление ===

if (((a>=0.1)and(a<=1.0)) and ((b>=0.05)and(b<=3.0))) then begin

if (a>=b) then begin

h:= 3.0*a*a - b*b

end

else begin

h:= ln(3.0*a*a - b*b);

end;

lbResult.Caption:= FloatToStr(h);

else begin

{ В заголовок метки lbResult вывести сообщение об ошибке }

lbResult.Caption:= 'Неверные параметры';

end;

MessageBeep(MB_ICONEXCLAMATION);

lbResult.Caption:= 'Неверные параметры';

end;

end;{try}

end;{TMainWindow.btCalcClick}

4.9.5. Вложенные блоки try…except и генерация исключений

Ключевое слово raise используется для генерации исключения, как предопределенного в Delphi, так и своего собственного. Синтаксис оператора генерации исключения:

raise <исключение>

где <исключение> - переменная типа исключения, или

raise <класс исключения>.<конструктор>

Оператор raise прерывает дальнейший нормальный ход вычислений, генерирует экземпляр объекта исключения заданного класса и передает управление ближайшему обработчику соответствующего типа. Обработчик разрушает экземпляр исключения, так что о деструкторе этого объекта заботиться не приходится.

Иногда при обработке исключения возникает потребность повторной генерации исключения того класса. Это может быть связано с тем, что, проведя первичную обработку этого исключения, желательно завершить обработку с помощью обработчика верхнего уровня. Повторная генерация осуществляется оператором raise без каких либо параметров:

raise;

Допустимы вложенные блоки try…except.

Для передачи управления обработчику внешнего блока try…except можно использовать оператор raise без параметров.

Как использовать оператор raise для возбуждения исключения по инициативе приложения (см. пример ниже).

Как уже было сказано исключение это объект класса Exception, точнее одного из его подклассов. Возможно создание своих собственных исключений.

Мы не будем подробно разбирать структуру этого класса, но обратим внимание на некоторые свойства и методы.

Message: PString;

Это свойство содержит текстовую строку – сообщение.

Возможное использование:

...

try

...

except

on e: Exception do { e идентфикатор объекта исключения }

lbResult.Caption: = e. Message;

...


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



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