Вниз
Скачать: 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.026 c
15-1177249159
ari_9
2007-04-22 17:39
2007.05.20
в каком DB-эксплорере можно сделать sql запрос из двух FB баз ?


4-1166299301
klimov
2006-12-16 23:01
2007.05.20
Достать текс из класса типа Afx:400000:4048:10013:0:0


2-1177849540
N3xt
2007-04-29 16:25
2007.05.20
Задачка)


15-1177334622
ПЛОВ
2007-04-23 17:23
2007.05.20
Д7 и Ворд недружат малость


2-1177422280
_Anton_
2007-04-24 17:44
2007.05.20
Обнулить связи между таблицами




   Наверх