Вниз
Скачать: CL | DM;

try finally end   Найти похожие ветки 

 
Cooller   (2007-03-22 11:39) [0]

begin
try
while (xxx) do S1;
S2;
finally
S3;
end;
S4;
end;


Если ли вариант во время выполнения блока S1 перейти сразу к выполнению S3, чтобы потом еще выполнился блок S4?


 
Сергей М. ©   (2007-03-22 11:42) [1]


> во время выполнения блока S1 перейти сразу к выполнению
> S3


Это как это ?!


 
Cooller   (2007-03-22 11:44) [2]

Ну допустим если использовать exit, то из S1 управление перейдет сразу в S3, но S4 выполнен не будет


 
Cooller   (2007-03-22 11:45) [3]

Нужный результат будет достигнут если в S1 произойдет исключение...


 
Сергей М. ©   (2007-03-22 11:45) [4]

try
while (xxx) do S1; //в блоке S1 возбудить любое исключение
S2;
except
S3;
end;
S4;

Это что ли имелось ввиду ?


 
clickmaker ©   (2007-03-22 11:45) [5]

а почему бы S4 не забрать в finally?


 
Правильный Вася   (2007-03-22 11:46) [6]

косовата логика


 
Сергей М. ©   (2007-03-22 11:48) [7]


> Cooller   (22.03.07 11:45) [3]
>
> Нужный результат будет достигнут если в S1 произойдет исключение


Не будет он достигнут - S4 выполнен не будет, поскольку при finally исключение не будет "погашено"


 
ЮЮ ©   (2007-03-22 11:54) [8]

begin
 try
   doS2 := false; //или true, заависит от логики
   while (xxx) do S1; //в блоке можно переопределить doS2
   if doS2 then S2;
 finally
   S3;
 end;
 S4;
end;


 
Аноним   (2007-03-22 11:56) [9]

Да, лучше через

> if doS2 then S2;


чем через доп. секцию except, так прозрачнее



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.034 c
15-1176833701
Углук
2007-04-17 22:15
2007.05.20
Спектральный анализ


2-1177636529
SteveVUspen
2007-04-27 05:15
2007.05.20
Как поменять иконку у приложения?


15-1177175038
oxffff
2007-04-21 21:03
2007.05.20
Баги компилятора. Опять. Опять. Опять :(


9-1150452720
Kostyanich
2006-06-16 14:12
2007.05.20
Редактор для huf-файла


15-1176897747
Юрий Зотов
2007-04-18 16:02
2007.05.20
Получил спам




   Наверх