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).