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

Finally

Стандартные классы исключений | While not EOF(F) do begin | Создание собственного класса | while notEOF(F) do |


Читайте также:
  1. Блок finally

<операторы>

end;

Защищенный блок начинается зарезервированным словом try (попытаться [выполнить]) и завершается словом end. Два типа защищенных блоков except (исключить) и finally (в завершение) отличаются способом обработки исключения. В блоке except порядок выполнения операторов таков: сначала выполня­ются операторы секции try...except; если операторы выполнены без возникно­вения исключительной ситуации, работа защищенного блока на этом прекращается и управление получает оператор, стоящий за словом end; если при выполнении части try возникло исключение, управление получает соответствующий обработ­чик в секции except, а если таковой не найден - первый из операторов, стоящих за словом else. В блоке finally операторы в секции finally...end получают управление всегда, независимо от того, возникло исключение в секции try... finally или нет. Если исключение возникло, все операторы в секции try... finally, стоящие за «виновником» исключения, пропускаются и управление по­лучает первый оператор секции finally...end. Если исключения не было, этот оператор получает управление после выполнения последнего оператора секции try...finally.

Обработчики исключений в блоке except имеют такой синтаксис:

 

оn <класс исключения> do <оператор>;

 

Здесь оn, do - зарезервированные слова; <класс исключения> - класс об­работки исключения; <оператор> - любой оператор Delphi, кроме оператора передачи управления goto на метку вне блока except.

Внимание: имя класса служит своеобразным ключом выбора, а соб­ственно обработка осуществляется оператором, стоящим за do (этот оператор бы­вает составным, так что обработка исключения может выполняться произвольным количеством операторов Delphi).

Поиск нужного обработчика осуществляется с начала списка вниз до тех пор, пока не встретится класс, способный обрабатывать исключение данного типа. Если подходящего класса не обнаружено, управление передается операторам, стоящим за словом else, а если таковых нет (часть else <операторы> может опускать­ся), выполняется умалчиваемая обработка исключения.

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

 

Try

...

Except

ShоwМеssаgе('Ошибка! ');

...

end;

 

Защищенные блоки могут вкладываться друг в друга на неограниченную глубину, так как везде, где в предыдущих описаниях указывался параметр <оператор>, могут использоваться любые операторы Delphi, в том числе и try... except или try... finally:

 

try

...

try

...

finally

 

end;

except

оn EMatchError do

begin

...

try

...

try

...

end;

...

end;

...

end;

...

end;

 


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


<== предыдущая страница | следующая страница ==>
Защищенные блоки| Класс Exception

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