Ключевые слова, используемые для обработки исключительных ситуаций

Обработка исключительных ситуаций


Исключительная ситуация возникает при выполнении некорректной математической операции, такой как деление на ноль. Потенциально любой оператор программы может стать причиной исключительной ситуации. Однако некоторые операторы относительно безопасны, и ваша задача при написании устойчивой программы состоит в основном в том, чтобы правильно решить, для каких операторов нужна защита, а какие безопасны.

Вот некоторые типы операций, которые могут привести к исключительным ситуациям:

· обработка файла;

· выделение памяти;

· работа с ресурсами системы;

· работа с объектами и формами, создаваемыми во время выполнения программы;

· аппаратные конфликты и конфликты операционных систем.

Ключевые слова, используемые для обработки исключительных ситуаций.

В Object Pascal есть несколько ключевых слов для создания и обработки исключений. Это try, except, on-do-else, finally, raise и at.

Блоки защищенных опереаторов

Блок защищенных операторов - основное средство для обработки исключительных ситуация. Ниже показана схема создания блока защищенных операторов с помощью блоков try и except. Обратите внимание, что конструкция заканчивается ключевым словом end;

try

{операторы, которые могут вызвать ошибку(сгенерировать исключение)}

except

{опереаторы для обработки сгенерированных исключений}

end;

Этот пример демонстрирует возникновение исключительной ситуации при делении на ноль.

procedure TForm1.Button1Click(Sender: TObject); Var I, J, K: integer; begin I:=0; J:=10; try K:= J div I; showmessage(inttostr(k)); except Showmessage ('Ошибка! Деление на ноль.'); end; end;
! Внимание! При тестировании исключительных ситуаций желательно отключить утилиту отслеживания сообщений WinSight32, если она запущена. Также, если вы используете Delphi 4, выберите команду Tools => Debugger Options и на вкладке Language Exception снимите флажок Stop on Delphi Exception. Теперь исключения не будут отлавливаться средой Delphi и управление исключительными ситуациями полностью предается вашему приложения.

После возникновения исключительной ситуации в блоке try выполнение немедленно переходит к первому оператору блока except. После генерирования исключительной ситуации дальнейшие операторы блока try не выполняются.

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

Блоки защищенных ресурсов

Вывод сообщений об ошибке - это только один аспект обработки исключительных ситуаций. Устойчивое приложение должно восстанавливать стабильное состояние системы при возникновении аварийных ситуаций. Для создания блоков защищенных ресурсов используют блоки try и finally.

Схема создания блока защищенных ресурсов:

try

{операторы, которые могут вызвать ошибку(сгенерировать исключение)}

finally

{освободить ресурс; гарантированно будет выполнено}

end;

{продолжить, если в блоке try не возникло исключительных ситуаций}

Операторы блока finally выполняются всегда, независимо от того, генерируется ли в блоке try исключение. Обычно операторы блока finally служат для освобождения памяти, закрытия файлов и выполнения других необходимых операций для восстановления стабильности системы при возникновении исключительной ситуации.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: