Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.11;
Скачать: CL | DM;

Вниз

Вопрос по try...finally.   Найти похожие ветки 

 
iNew ©   (2003-08-29 06:10) [0]

try
Source := FileOpen(FileName, fmShareDenyWrite);
if Source < 0 then
begin
FileClose(Source);
exit;
end;
DoSomething;
finally
FileClose(Source);
end;

Возможно ли использовать Exit в данном случае?


 
Anatoly Podgoretsky ©   (2003-08-29 06:29) [1]

Использовать можно и нужно, но первый FileClose надо убрать.


 
iNew ©   (2003-08-29 07:06) [2]

Но если его убрать выплонится ли FileClose, который после finally, ведь если Source < 0, то выполнится Exit.


 
Anatoly Podgoretsky ©   (2003-08-29 07:12) [3]

Да обязательно выполнится, хоть нормально, хоть в случае ошибки.


 
Song ©   (2003-08-29 08:37) [4]

2iNew © (29.08.03 06:10)

procedure Exit;

Description

The Exit procedure immediately passes control away from the current procedure. If the current procedure is the main program, Exit causes the program to terminate.

Exit will cause the calling procedure to continue with the statement after the point at which the procedure was called.

Note: Exit passes control away from the current procedure, not merely the current block. But Exit does not violate the flow of control dictated by a try..finally construct; if Exit is called inside the try clause, the finally clause is still executed.



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

Текущий архив: 2003.09.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
1-33579
mrAld
2003-08-28 15:59
2003.09.11
RAR


3-33472
Zelius
2003-08-19 20:02
2003.09.11
Как очистить BLOB поле в таблице?


1-33583
Pirat
2003-08-28 13:57
2003.09.11
мерцание TListView при скроллировании


3-33471
Slaviq
2003-08-20 15:57
2003.09.11
Как правильно удалять, эдитить, в СКюЛ используя две БД


4-33845
Mishenka
2003-07-11 17:49
2003.09.11
Вопрос про ShellExecute и др.