Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Для возврата по try используется стек вызова процедур.

Перекрытие элементов класса в производных классах | Информация о типе времени выполнения программы | Атрибуты доступа к элементам объектов | Механизм вызова виртуального метода | Абстрактный виртуальный метод | Методы обработки сообщений | Понятие ссылки на метод объекта | Понятие события | Ошибки и исключительные ситуации | Классы исключительных ситуаций |


Читайте также:
  1. Present Simple используется, когда речь идет о проверенных фактах и научных данных, либо о том, что говорящий таковыми считает.
  2. Г. используется в синтезе липидов
  3. Для образования Past Simple в отрицательных и вопросительных предложениях используется вспомогательный глагол did.
  4. Для печати используется фотобумага LOMOND с магнитным слоем (глянцевая 660 г/м2).
  5. Для чего используется Анализ 80/20?
  6. Как ZBrush используется в производстве игр

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

Ресурсы нуждаются в защите от исключительных ситуаций. Для этого в среде Delphi предусмотрен еще один вариант защищенного блока:

 

// запрос ресурса

try

// защищаемые операторы, которые используют ресурс

finally

// освобождение ресурса

end;

 

Особенность этого блока состоит в том, что секция finally...end выполняется всегда независимо от того, происходит исключительная ситуация или нет. Если какой-либо оператор секции try...finally генерирует исключительную ситуацию, то сначала выполняется секция finally...end, называемая секцией завершения (освобождения ресурсов), а затем управление передается внешнему защищенному блоку. Если все защищаемые операторы выполняются без ошибок, то секция завершения тоже работает, но управление передается следующему за ней оператору. Обратите внимание, что секция finally...end не обрабатывает исключительную ситуацию, в ней нет ни средств ее обнаружения, ни средств доступа к объекту исключительной ситуации.

 

 

Блок try...finally...end обладает еще одной важной особенностью. Если он помещен в цикл, то вызов из защищенного блока процедуры Break с целью преждевременного выхода из цикла или процедуры Continue с целью перехода на следующую итерацию цикла сначала обеспечивает выполнение секции finally...end, а затем уже выполняется соответствующий переход. Это утверждение справедливо также и для процедуры Exit.

Как показывает практика, подпрограммы часто распределяют сразу несколько ресурсов и используют их вместе. В таких случаях применяются вложенные блоки try...finally...end:

 

// распределение первого ресурса

try

...

// распределение второго ресурса

try

// использование обоих ресурсов

finally

// освобождение второго ресурса

end;

...

finally

// освобождение первого ресурса

end;

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


Дата добавления: 2015-11-16; просмотров: 61 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
В тот момент, когда управление передается на Except, в программе считается, что ошибка обработана.| Приемы надежного программирования

mybiblioteka.su - 2015-2024 год. (0.005 сек.)