![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
try .. finally .. end. Помогите разобраться
user1991 © (2009-10-14 21:39:00)допустим пишу такой код:
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:48:00) [1]
> то при возникновении исключения в блок finally управление
> не попадало
а ты поставь туда breakpoint
user1991 (2009-10-14 21:46:00) [2]хм... спасибо большое за ответ!
я просто пошагово когода проходил, то при возникновении исключения в блок finally управление не попадало, после чего стал писать такой громоздкий код, да решил все-таки поинтересоваться у знающих людей...
Игорь Шевченко (2009-10-14 21:41:00) [3]
> вот в данном случаи если в блоке вылетит исключение, освобождение
> же памяти не произойдет?
произойдет