Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.10.16;
Скачать: CL | DM;

Вниз

Assert   Найти похожие ветки 

 
Scott Storch   (2011-06-29 17:09) [0]

в каких случаях следует использовать assert? есть, например, public-метод класса TUpdr:


procedure TUpdr.ApplyPack(Pack: TZipForge);
var
 Cur: IXMLDOMNode;
 Hdr: IXMLDOMDocument;
 I: Integer;
begin
 Hdr := CoDOMDocument.Create;
 GetPackHdr(Pack, Hdr);
 with Hdr.documentElement do
   for I := 0 to childNodes.length - 1 do
   begin
     Cur := childNodes[I];
     if SameText(Cur.nodeName, FILE_NODE_NAME) or
       SameText(Cur.nodeName, FILE_FULL_NODE_NAME) then
       ApplyUpdrNode(Cur)
     else
       ApplyFileNode(Cur);
   end;
end;


Стоит ли ставить assert на проверку параметра - Pack?

Assert(Pack <> nil);


 
Rouse_ ©   (2011-06-29 17:21) [1]

В любых где тебе захочется, это просто один из методов отладки - не более...


 
Dimka Maslov ©   (2011-06-29 18:40) [2]

Поскольку ошибка всегда бывает в 17-той строке, следовательно assert должен быть в 16-той


 
Дмитрий Белькевич   (2011-06-30 09:45) [3]


> Стоит ли ставить assert на проверку параметра - Pack?


А как не лень. По хорошему - то все входные параметры проверять на корректность - как минимум. Можно еще и выходные. Можно и по коду проверок набросать.

В общем - кашу маслом не испортишь.


 
_Юрий   (2011-06-30 22:05) [4]


> Дмитрий Белькевич   (30.06.11 09:45) [3]


Особенно смешно буднет потом, когда внезапно изменятся правила. Разбросанные по коду проверки еще длительное время будут доставлять массу веселых минут горемыкам, сопровождающим проект.


 
_Юрий   (2011-06-30 22:11) [5]


> Scott Storch   (29.06.11 17:09)  


в данном случае смысла в  Assert особо не видно - если придет nil, тут же поднимется AV (на чтении адреса, близкого к нулевому), и ошибка будет выявлена. Assert имеет смысл ставить там, где без него программа пошла бы по ошибочной ветке.


 
George ©   (2011-07-01 18:23) [6]


> Поскольку ошибка всегда бывает в 17-той строке, следовательно
> assert должен быть в 16-той

Если исходить из того, что ошибка всегда в 17-й строке, то и ассерт не надо ставить, надо идти в 17-ю строку и править там ошибку.
Кстати, дурацкий вопрос, но откуда взялся этот мем?



Страницы: 1 вся ветка

Текущий архив: 2011.10.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.006 c
2-1309043057
Gu
2011-06-26 03:04
2011.10.16
Текстовые ресурсы


2-1309007537
Maxim-us
2011-06-25 17:12
2011.10.16
TChart style


1-1269120802
olookin
2010-03-21 00:33
2011.10.16
Обновление TChart для показа визуальных Parent-элементов


15-1308953060
Kerk
2011-06-25 02:04
2011.10.16
Quake2 to Delphi conversion


2-1309187909
ShegAI
2011-06-27 19:18
2011.10.16
StayOnTop при длительных операциях