Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Exit из except-скобок


RWolf ©   (2009-12-10 18:04:00) 

Вот тут http://www.compress.ru/article.aspx?id=10605&iid=433пишут, что сабж ведёт к трудоуловимым глюкам; так ли это? и если да, то каков механизм их появления?


Ганя   (2009-12-10 19:27:00) [1]

Нарывался на проскакивание мимо секции finally при exit на старых версиях (приблизительно D4-D5). На новых версиях косяков не замечено


sniknik   (2009-12-10 19:10:00) [2]

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


Юрий Зотов   (2009-12-10 18:41:00) [3]

Вообще-то, в статье по сссылке речь идет об Exit из блоков ry-finall, а не из блоков try-except:

> по поводу защищенных блоков можно сделать следующее замечание: по
> крайней мере в Delphi 3 нельзя было вставлять оператор Exit внутри
> защищенного блока. Это неминуемо приводило к исключению, причем в
> точке, далеко отстоящей от выхода из метода. Данная ошибка очень
> трудно поддается обнаружению.

Не помню уже, как было дело в D3, а в D7 (и, видимо, более поздних тоже) ничего необычного не происходит, по крайней мере в таком коде:

try
 ...
 if ... then Exit;
 ...
finally
 ...
end;

причем секция finally, как ей и положено, срабатывает в любом случае.


Наверх

Титульная страница Поиск, карта сайта Написать письмо