Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Библиотека визуальных компонентов VCL >> Структура справочника и соглашения >> Обработка исключительных ситуаций >> Переопределение стандартной обработки исключительной ситуации
Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Переопределение стандартной обработки исключительной ситуации


Стандартная обработка подразумевает вывод на экран панели сообщения (из свойства Exception.Message) с указанием типа ошибки, имени модуля и адреса, где она имела место. Однако ее легко переопределить в соответствии со своими потребностями:

try
══U := 220.0;
══R := 0;
══I := U / R;
except
══on EZeroDivide do MessageBox('Короткое замыкание !','' ,mb_0k);
end;

В этом примере замена if...then на try...except не дала очевидной экономии кода. Однако, если при решении, допустим, вычислительной задачи проверять на возможное деление на ноль приходится многократно, то выигрыш от нового подхода неоспорим.

Во время возникновения ИС создается объект соответствующего ей класса и помещается в стек. Если во время обработки вам требуется доступ к свойствам этого объекта, его нужно поименовать внутри on...do:

on EZD: EZeroDivide do EZD.Message := ...

Поместив следующий фрагмент кода в файл проекта, вы сможете проверить чувство юмора у пользователей ваших программ:

try
══{ Создание форм }
══Application.CreateForm(TForm1, Form1);
══Application.Run;
except
══on E: Exception do
══begin
════E.Message := E.Message + ', xa-xa-xa!';
════Raise;
══end;
end;



[Назад]    [Содержание ]    [Вперед]

  


Для комментария : kadan@grsu.grodno.by

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017