![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про try [D7]
sancho2 © (2008-03-03 11:03:00)
Mem1 := TMemoryStream.Create;
try
Mem1...
Mem2 := TMemoryStream.Create;
try
SomeProc(Mem1, Mem2); // после этого Mem1 - больше мне не нужен
finally
Mem1.Free;
end;
Mem2...
finally
Mem2.Free;
end;
Как в таком случае делать try и finally: я хочу сразу после SomeProc освободить Mem1.
?
Anatoly Podgoretsky (2008-03-03 19:00:00) [1]> sancho2 (03.03.2008 11:08:03) [3]
Да вполне нормально, типичный дурдом.
Palladin (2008-03-03 12:07:00) [2]
> sancho2 (03.03.08 11:08) [3]
с чего это вдруг нормально то, у тебя все кривося накося? утечка памяти имеет место быть при возникновении исключения между первым и вторым try
Kolan (2008-03-03 11:10:00) [3]> А такое, как у меня, это нормально?
Работать будет, но, имхо, это ненормально
sancho2 (2008-03-03 11:08:00) [4]А такое, как у меня, - это нормально?
Kolan (2008-03-03 11:07:00) [5]> Как в таком случае делать try и finally: я хочу сразу после
> SomeProc освободить Mem1.
Как-то это мозг разрушает. Обычно:
Создал «А»
try
finally
Удалил «А»
end;
А у тя каша.
Mem2 := TMemoryStream.Create;
try
Mem1 := TMemoryStream.Create;
try
Mem1
SomeProc(Mem1, Mem2); // после этого Mem1 больше мне не нужен
finally
Mem1.Free;
end;
Mem2
finally
Mem2.Free;
end;
Сергей М. (2008-03-03 11:05:00) [6]
> я хочу сразу после SomeProc освободить Mem1
Ну так ты именно это и делаешь...