Вниз
Скачать: 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.031 c
15-1177201358
Погуглист
2007-04-22 04:22
2007.05.20
У кого нибудь есть странички на google pages ?


2-1177701007
Познающий
2007-04-27 23:10
2007.05.20
Коды Рида Соломона


15-1177202837
vasIZmax
2007-04-22 04:47
2007.05.20
Задачка


2-1177396233
cj
2007-04-24 10:30
2007.05.20
TreminateProcess


1-1174837818
@Voldemar
2007-03-25 19:50
2007.05.20
Добавление своей вкладки.




   Наверх