|
Сервер
поддерживается
кафедрой информатики и
вычислительной техники ГрГУ
тел. +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
|