Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Свойства и конструкторы исключенийСодержание книги
Поиск на нашем сайте Message - текст, выводимый обработчиком в окне сообщения. HelpContext ‑ номер экрана контекстно‑зависимой справки, вызываемой клавишей F1 из окна сообщения об ошибке. Файл справки предварительно нужно создать и связать его с приложением командой Project/Options/Application/Help file (п. 5.1). Конструкторы (методы) исключений позволяют сформировать свойства Message и Help. Create (const Msg: string). CreateFmt (const Msg: string, const Args:array of const). CreateRes (Ident: integer). CreateResFmt (Ident:integer, const Args:array of const). CreateHelp (const Msg: string, HelpContext:integer). CreateFmtHelp (const Msg: string, const Args:array of const, HelpContext). CreateResHelp (Ident,HelpContext:integer). CreateResFmtHelp (Ident:integer, const Args:array of const, HelpContext). Конструкторы, в имени которых нет Fmt или Res, присваивают свойству Message значение аргумента Msg. Конструкторы, в имени которых есть Fmt, содержат параметр Msg с описанием формата редактирования элементов массива Args (аналогично функции Format). Конструкторы, в имени которых есть Help, присваивают свойству HelpContext значение одноименного аргумента. Конструкторы, в имени которых есть Res, параметром Ident задают идентификатор строки ресурса (п. 1.3.1.2) сообщения или строки описания формата, если в имя входит Fmt. Примеры использования конструкторов: Type Emy=Class(Exception); // создание класса исключений (п. 1.6.9) Raise Emy.Create(‘Ошибка в параметрах’);//генерация исключения (п.1.6.7) Raise Emy.CreateFmt(‘Задано %d, а нужно%d’,[4,9]); // формат. сообщение Raise EZeroDivide.Create(‘Деление на ноль’); // генерация исключения Raise Emy.CreateRes(9); //свойство Message=строке ресурсов с номером 9 Raise Emy.CreateResFmt(8,[5,7]); // Message=отформатированные 5 и 7. 1.6.4. Блок зачистки Try‑ Finally ‑ End Try <операторы> Finally <всегда выполняемые операторы> End; Операторы, которые указаны после Finally, выполняются и при успешном, и при аварийном завершении работы операторов, указанных перед Finally. Это позволяет корректно завершить работу программы в исключительной ситуации, например, освободить динамически выделенную память, закрыть файлы, удалить временные файлы. Зачистка в разделе модуля Finalization В этом разделе можно проверить, завершается программа нормально (ExceptAddr=Nil) или аварийно, используя функцию ExceptAddr. Для этого следует указать хотя бы пустой раздел модуля Initialization. 1.6.6. Блок обработки исключений Try ‑ Except ‑ End Try <операторы> Except <обработка исключений> [ Else <операторы>] End; Операторы, которые указаны после Except, выполняются только при аварийном завершении работы операторов, указанных перед Except. Для задания обработки исключений в этом блоке используются операторы: On <класс исключений> Do <оператор> или другие операторы; смешение операторов On с другими операторами не допускается. Операторы, указанные после Else, выполняются для всех, не перехваченных ранее исключений. Пример: Var A,C,B: Shortint; Begin A:=1; B:=100; Try C:=StrToInt(Edit1.Text); A:=(B Div C); //обычное выполнение Except //начало блока обработки исключений On EConvertError Do ShowMessage('Ошибка ‑ не число! Повторите ввод'); On EdivByZero Do ShowMessage('Ошибка ‑ ноль! Повторите ввод'); On EIntOverFlow Do If (B*C)>=0 Then A:=127 Else A:=‑128; End; //окончание блока Некоторые исключения имеют дополнительные свойства (поля). Например, исключение EinOutError имеет свойство ErrorCode типа Integer с кодом ошибки ввода‑вывода. Для использования таких свойств. Оператор On записывается в виде: On < метка>: <класс исключений> Do <операторы с конструкциями <метка>. <свойство>; Пример контроля за операциями файлового ввода - вывода: On 10: EinOutError Do //начало обработки исключений при вводе ‑ выводе Begin Case 10.Errorcode Of //оператор выбора варианта обработки 2: S:=’Файл ‘+S+’ не найден!’; //код ошибки=2 106: S:=’Ошибка ввода при работе с файлом ‘+S; //ошибка=106 End; //окончание обработки вариантов ошибок ShowMessage(S); //вывод сообщения об ошибке End; //окончание обработки исключений при вводе‑выводе Допускаются конструкции вида: Try... Try... Finally... End; Except... [Else... ] End; Допускается вложенность блоков Try...Except. В этом случае вначале ищется обработчик в блоке, в котором создалось исключение, и если его нет, то продолжается поиск в обрамляющем блоке, и. т. д.
|
||
|
Последнее изменение этой страницы: 2017-02-08; просмотров: 389; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |