Форум: "Начинающим";
Текущий архив: 2013.10.06;
Скачать: [xml.tar.bz2];
Внизtry..except Найти похожие ветки
← →
Burn (2013-01-17 14:54) [0]стоит ли здесь вставлять блоки try..except?
procedure Tf_AdditionalFields.FormCreate(Sender: TObject);
var
Field: TAdditionalField;
begin
Field := TAdditionalField.Create;
Field.Name := FN_COUNTRY_OF_ORIGIN;
Field.LabelName := FLN_COUNTRY_OF_ORIGIN;
Field.Type_ := FT_COUNTRY_OF_ORIGIN;
Field.Purpose := FP_COUNTRY_OF_ORIGIN;
AdditionalFields_AddField(Field);
//
Field := TAdditionalField.Create;
Field.Name := FN_MANUFACTURER_WARRANTY;
Field.LabelName := FLN_MANUFACTURER_WARRANTY;
Field.Type_ := FT_MANUFACTURER_WARRANTY;
Field.Purpose := FP_MANUFACTURER_WARRANTY;
AdditionalFields_AddField(Field);
//
Field := TAdditionalField.Create;
Field.Name := FN_ADULT;
Field.LabelName := FN_ADULT;
Field.Type_ := FT_ADULT;
Field.Purpose := FT_ADULT;
AdditionalFields_AddField(Field);
end;
← →
знайка (2013-01-17 14:56) [1]зачем?
← →
Burn (2013-01-17 15:03) [2]
> зачем?
чтобы исключить утечку памяти в случае, если при добавлении возникнет ошибка.
← →
Сергей М. © (2013-01-17 15:10) [3]Стоит если не уверен в невозможности исключений.
Не стоит если иначе.
← →
clickmaker © (2013-01-17 15:12) [4]> чтобы исключить утечку памяти
а причем тут утечка памяти? и где?
← →
bems © (2013-01-17 15:51) [5]если при исключении AdditionalFields_AddField гарантируется что поле не добавлено, то стоит стоит, как-то так
Field := TAdditionalField.Create;
try
Field.Name := FN_COUNTRY_OF_ORIGIN;
Field.LabelName := FLN_COUNTRY_OF_ORIGIN;
Field.Type_ := FT_COUNTRY_OF_ORIGIN;
Field.Purpose := FP_COUNTRY_OF_ORIGIN;
AdditionalFields_AddField(Field);
except
FreeAndNil(Field);
raise
end;
← →
знайка (2013-01-17 15:55) [6]А программа умеет работать без филдов?
← →
O'ShinW © (2013-01-18 09:37) [7]AdditionalFields_AddField(Field); переписать как булеву функцию
if not(AdditionalFields_AddField(Field) ) then
FreeAndNil(Field);
← →
Игорь Шевченко © (2013-01-18 11:28) [8]O"ShinW © (18.01.13 09:37) [7]
зачем FreeAndNil ?
← →
O'ShinW © (2013-01-18 11:44) [9]
> Игорь Шевченко © (18.01.13 11:28) [8]
создали - не пригодилось - создали "взад" :)
на автомате, единообразно
← →
Игорь Шевченко © (2013-01-18 14:23) [10]O"ShinW © (18.01.13 11:44) [9]
Автомат смени
← →
bems © (2013-01-18 16:18) [11]
> переписать как булеву функцию
это не решение. там перед ней еще код есть, кроме того она для фактического добавления может использовать что-нибудь вроде TList.Add
> зачем FreeAndNil ?
ну например http://www.gunsmoker.ru/2009/04/freeandnil-free.html
← →
Игорь Шевченко © (2013-01-18 16:51) [12]
> ну например http://www.gunsmoker.ru/2009/04/freeandnil-free.
> html
http://www.nickhodges.com/post/Using-FreeAndNil.aspx
← →
bems © (2013-01-18 16:52) [13]Спасибо, я не спрашивал почему не нужно использовать FreeAndNil
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.10.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c