Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> использование try..except 
V
    Опции темы
NieL
Дата 22.4.2011, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 10.2.2008

Репутация: 1
Всего: 1



Код

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?

Объект FLinker напрямую привязан к стриму (пока стрим открыт можем работать с его содержимым через FLinker), FLinker будет использоваться несколькими методами класса-формы.

Это сообщение отредактировал(а) NieL - 22.4.2011, 11:17
PM MAIL   Вверх
MetalFan
Дата 22.4.2011, 11:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



NieL, в данном случае лучше использовать try..finally
Тогда все будет грамотно.
Можно конечно сократить (убрать один try..finally), если на 100% уверены, что TLinker.Create никогда не вызовет исключение.
Но, по скольку никогда ни в чем на 100% уверенным быть нельзя, то лучше оставить так, как есть (в смысле кол-ва try..finally)

Это сообщение отредактировал(а) MetalFan - 22.4.2011, 11:25


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.