Message: string; FHelpContext: Integer; public


constructor Create(const Msg: string); constructor CreataFmt(const Msg: string;

const Args: array of const); constructor CreateRes(Ident: Integer); overload; constructor CreateRes(ResStringRec: PResStringRec); overload; constructor CreateResFtat(Ident: Integer;

const Args: array of const); overload; constructor CreateResFmt(ResStringRec: PResStringRec;

const Args: array of const); overload; constructor CreateHelp (const Msg: string; ABelpContext: Integer); constructor CreateRntHelp(const Msg: string;

const Args: array of const;

AHelpContext: Integer); constructor CreateResHelp(Ident: Integer;

AHelpContext: Integer); overload; constructor CreateResHelp(ResStringRec: PResStringRec;

AHelpContext: Integer); overload; constructor CreateResFmtHelp(ResStringRec: PResStringRec;

const Args: array of const;

ABelpContext: Integer); overload; constructor CreateResFmtHelp(Ident: Integer;

const Args: array of const;

AHelpContext: Integer); overload; property HelpContext: Integer read FHelpContext

write FHelpContext; property Message: string read FMessage write FMassage; end;

В классе Exception объявлено два свойства (табл. 5.2).

_____________________________________________ Таблица S 2

Свойство Тип -------------------------- 1аолнца э./ Описание
  string Строка сообщения, которая отображается в окне при обработке исключения системным обработчиком сообщений
HelpContext Integer Целый идентификатор экрана контекстно-завнсимой справки, отображаемого, при нажатии F1 в окне с сообщением об ошибке. По умолчание п

КлассException наследует осе функции своего базового классаTObject, в«авГк1вП0Л'ЗНУЮ ДЛЯ ИЛе"™фИКаЦИИ ««'местного исключения функцию

иск1:-^™3)ЕХСеР11011 0Ш,СаНЫ 8 KOHCTPyK"TOiMB' Насле^-х всеми

__ KOHCTpyin-OJ) ---------- —------------ Таблица 5.3 Описание
  Конструктор передает строку сообщения Msg свойству Message J
  Конструктор формирует строку свойства Messaee, исходя из строки описания формата Msg и массива аргументов Args
CreateRes Конструктор задает строку свойства Message идентификатором Ident строки сообщения в ресурсах проекта  
; CreateResFmt Конструктор задает строку свойства Message идентификатором Ident строки сообщения в ресурсах проекта и массивом аргументов Args  
CreateHelp v Конструктор передает строку сообщения Msg свойству Message; передает свойству HelpContext идентификатор HelpContext экрана контекстно-зависимой справки по этому исключению  
:CreateFmtHelp Конструктор формирует строку свойства Message, исходя из строки описания формата Msg и массива аргументов Args; передает свойству HelpContext идентификатор HelpContext экрана контекстно-зависимой справки по этому исключению  
! CreateResHelp Конструктор задает строку свойства Message идентификатором Ident строки сообщения в ресурсах проекта; передает свойству HelpContext идентификатор HelpContext экрана контекстно-зависимой справки по этому исключению  
CreateResFmtHelp Конструктор задает строку свойства Message идентификатором Ident строки сообщения в ресурсах проекта и массивом аргументов Args; передает свойству HelpContext идентификатор HelpContext экрана контекстно-зависимой справки по этому исключению  

Пример вызова конструктораCreate.

(Генерация собственного исключения EMyException) raise EMyException.Create ('He хватает исходных данных'); (Генерация исключения EZeroDivide с измененным сообщением) raise EZeroDivide.Create ('Деление на нуль'); {Использование функции Format}

raise ЕМуЕхсер*-ion .Create (Format ( 'Задано %d параметров из %d' ,

[N1,N2]));

Пример вызова конструктораCreateFmt: raise ЕМу.CreateFmt ('Задано %d параметров из %d',[N1,N2]));

В отличие от конструктораCreate конструкторы, имеющие в своем названии Etat, сами неявно обращаются к функцииFormat, так что запись конструктора несколько упрощается.

Пример вызова конструктораCreateHelp: raise ЕМу.CreateHelp ('Не хватает исходных данных', 10)

Пример вызова конструктораCreateResFmt, при условии, что в файле ресурсов существует форматная строка с номером 65369, в которой требуется подстановка двух параметров тех же типов, что и переменные N1 и N2. raise ЕМу.CreateResFmt (65369, [HI, H2J).


Наши рекомендации