Форум: "Начинающим";
Текущий архив: 2011.07.31;
Скачать: [xml.tar.bz2];
Внизtry..except Найти похожие ветки
← →
ldv (2011-04-22 11:43) [0]
function TMainForm.init_data(Data: Pointer;
Size: Cardinal): Bool;
begin
Flinked_data := TMemoryStreamEx.Create(Data, Size);
try
FLinker := TLinker.Create;
try
Result := FLinker.SetStaticFromMemory(Flinked_data.Memory, Flinked_data.Size,
False);
except
FreeAndNil(FLinker);
raise;
end;
except
FreeAndNil(Flinked_data);
raise;
end;
end;
есть подозрение, что неправильно использую try..except. Может правильнее сделать один общий try..except для Flinked_data и FLinker?
← →
oldman © (2011-04-22 11:52) [1]
> Может правильнее сделать один общий try..except для Flinked_data
> и FLinker?
Не...
Лучше сделай для них var...
← →
_oxffff (2011-04-22 11:56) [2]
> есть подозрение, что неправильно использую try..except.
Все зависит от постановки задачи.
← →
LDV (2011-04-22 12:05) [3]
> Лучше сделай для них var...
объект FLinker напрямую привязан к стриму (пока стрим открыт можем работать с его содержимым через FLinker), FLinker будет использоваться несколькими методами класса-формы, поэтому сделать их локальными не получится.
← →
И. Павел © (2011-04-22 13:24) [4]А я в таких ситуациях делаю так:
Flinked_data := nil;
FLinker := nil;
try
Flinked_data := TMemoryStreamEx.Create(Data, Size);
FLinker := TLinker.Create;
...
except
FreeAndNil(Flinked_data);
FreeAndNil(FLinker);
raise;
end;
← →
Игорь Шевченко © (2011-04-22 15:24) [5]
> есть подозрение
подозрение укрепилось
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.07.31;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c