Форум: "Начинающим";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c