![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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, как ей и положено, срабатывает в любом случае.