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

Вниз

try .. finally .. end. Помогите разобраться   Найти похожие ветки 

 
user1991   (2009-10-14 21:39) [0]

допустим пишу такой код:

procedure test;
var
  buff: PChar;
begin
  getMem(buff, 1024)
  try
     ....
  finally
     freeMem(buff);
  end;
end;

вот в данном случаи если в блоке вылетит исключение, освобождение же памяти не произойдет?

вот это правильный будет код? :

procedure test;
var
  buff: PChar;

  procedure exit_;
  begin
     freeMem(buff);
  end;
begin
  getMem(buff, 1024)
  try
     ....
     exit_;
  except
     exit_;
  end;
end;

но что-то громоздко... неужели нет что-то совмещающее и финал и исключение?


 
Игорь Шевченко ©   (2009-10-14 21:41) [1]


> вот в данном случаи если в блоке вылетит исключение, освобождение
> же памяти не произойдет?


произойдет


 
user1991   (2009-10-14 21:46) [2]

хм... спасибо большое за ответ!

я просто пошагово когода проходил, то при возникновении исключения в блок finally управление не попадало, после чего стал писать такой громоздкий код, да решил все-таки поинтересоваться у знающих людей...


 
Игорь Шевченко ©   (2009-10-14 21:48) [3]


> то при возникновении исключения в блок finally управление
> не попадало


а ты поставь туда breakpoint



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
15-1254429012
Юрий
2009-10-02 00:30
2009.11.29
С днем рождения ! 2 октября 2009 пятница


4-1198157287
p_evghenii
2007-12-20 16:28
2009.11.29
Почему SendMessage работает, а PostMessage нет?


11-1193486478
D[u]fa
2007-10-27 16:01
2009.11.29
KOL_MCK for Delpi 2007 Turbo worked


15-1254515407
Юрий
2009-10-03 00:30
2009.11.29
С днем рождения ! 3 октября 2009 суббота


15-1254121019
Григорьев Антон
2009-09-28 10:56
2009.11.29
Наука на службе университета