Главная страница
    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
1-1258798953
Axtazi
2009-11-21 13:22
2011.07.03
Помогите


15-1300102057
Иван
2011-03-14 14:27
2011.07.03
Можно ли готовую программу разбить на исходники?


2-1301350488
Германн
2011-03-29 02:14
2011.07.03
Непонятный глюк.


2-1301297993
aka
2011-03-28 11:39
2011.07.03
Пазлы


15-1299878994
Юрий
2011-03-12 00:29
2011.07.03
С днем рождения ! 12 марта 2011 суббота





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский