Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.07.03;
Скачать: [xml.tar.bz2];

Вниз

вопрос про assert ы   Найти похожие ветки 

 
young_dev   (2011-03-29 15:51) [0]

Использование Assert"ов вместо raise Exception.Create() правильно с точки зрения организации кода или же их следует использовать только при отладке, а для релиза отключать.

например вместо того, чтобы писать:

if is_full(nodeName) and not ((from_ver = Ver) or
(from_size = Size) or (from_crc32 = CRC32)) then
 raise Exception.Create("Ошибка целостности");

можно так:

Assert(is_full(nodeName) or (from_ver = Ver) and
(from_size = Size) and (from_crc32 = CRC32), "Ошибка целостности");


 
clickmaker ©   (2011-03-29 15:58) [1]

вроде как в справке достаточно подробно расписано.
В частности
In Delphi code, use Assert as a debugging tool to test that

и

The SysUtils unit causes runtime errors to be turned into exceptions. If SysUtils is not used anywhere in your application, you will get a runtime error 227 rather than an EAssertionFailed exception. This runtime error will halt the program.


 
OW ©   (2011-03-29 16:00) [2]

ну, вроде  assert, это когда вообще мир на голову перевернулся, вроде совсем чего-то нереальное случилось..

у меня субъекты Tsubject, например, имеют признак J или P (char), но его по var отдаю в модуль писанный, не мной, там св-во это вообще не нужно, но если его сломают там - будет именно assert(ahtung надо передлать :) ).

вот. Хотя это имхо только


 
Anatoly Podgoretsky ©   (2011-03-29 16:33) [3]

> young_dev  (29.03.2011 15:51:00)  [0]

Дело вкуса, некоторые используют их всегда, там же и строку показывает


 
han_malign   (2011-03-29 16:40) [4]


> но если его сломают там

- и вот будут твои потомки компилироваться с {$C-}, и голову ломать - что ж за фигня творится...


 
Игорь Шевченко ©   (2011-03-29 16:49) [5]


> Хотя это имхо только


Справку читать и не позориться!


 
Anatoly Podgoretsky ©   (2011-03-29 17:01) [6]

Может ну их эти ассерты нафиг, и прочии места тоже прикрыть блоками try ... except end;
Программа будет без ошибок, серьезная такая, солидная программа.


 
Игорь Шевченко ©   (2011-03-29 17:02) [7]

у asserta есть полезная фича - он номер строки показывает


 
_Юрий   (2011-03-29 22:53) [8]


> - и вот будут твои потомки компилироваться с {$C-}, и голову
> ломать - что ж за фигня творится...


Угу. Потенциальные грабли.
А если еще написать нечто типа
Assert(MyBoolFunc) как способ проверки результата функции, то и вообще смешно получится в релиз-сборке (с отключенными ассертами).


 
Leonid Troyanovsky ©   (2011-03-29 23:04) [9]


> Игорь Шевченко ©   (29.03.11 17:02) [7]

> у asserta есть полезная фича - он номер строки показывает

Дык, уж все знают, что ошибки бывают токмо в 17 строке.

--
Regards, LVT.


 
Игорь Шевченко ©   (2011-03-29 23:45) [10]


> Дык, уж все знают, что ошибки бывают токмо в 17 строке.


У меня в 672-ой. Но редко :)


 
OW ©   (2011-03-30 08:40) [11]

номер строки это неплохо, не замечал
с этим jedi тоже справляется, правда, при включении отладочной инф-ции


> Справку читать и не позориться!

так тут же намного популярнее объясняют :)
тем более лучше вовремя начать делать правильнее


 
Anatoly Podgoretsky ©   (2011-03-30 10:04) [12]

> Игорь Шевченко  (29.03.2011 23:45:10)  [10]

Но точно, поскольку Assert говорит правду



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

Форум: "Начинающим";
Текущий архив: 2011.07.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
15-1300208090
И. П. Павел
2011-03-15 19:54
2011.07.03
Прогноз погоды на JAVA


15-1300464781
И. Павел
2011-03-18 19:13
2011.07.03
Принято ли в XML учитывать порядок элементов одного уровня?


15-1300438782
compuser
2011-03-18 11:59
2011.07.03
Несворачиваемая, дырявая форма


15-1300486988
Иксик
2011-03-19 01:23
2011.07.03
Вот когда надо написать Карлосу Гомесу, откуда знать где имя,


15-1300391272
vajo
2011-03-17 22:47
2011.07.03
Проблема со звуком на компе.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский