assert(condition[, message]) patch
Derek Parnell
derek at psych.ward
Wed May 31 15:25:44 PDT 2006
On Thu, 01 Jun 2006 04:38:50 +1000, Sean Kelly <sean at f4.ca> wrote:
> Walter Bright wrote:
>> braddr at puremagic.com wrote:
>>> I have been toying with D to bring myself up to speed and I found
>>> myself writing
>>> a lot of unit tests, always a good thing. In those unit tests I found
>>> myself
>>> writing a lot of blocks like:
>>>
>>> if (cond)
>>> {
>>> writefln("some debugging output to make my life easier");
>>> assert(false);
>>> }
>>>
>>> I know many don't like unit tests to have output, but I do.
>> Why not:
>> assert(!cond); // some debugging output to make my life easier
>> ? You'll need to go look at the source anyway when the assert trips,
>> so what advantage is there to print the comment?
>
> Some applications ship with asserts left on, and the more information
> the user has about why the application just halted the better. As
> others have noted, an optional message also allows state information to
> be conveyed, which can be useful in the absence of a core dump.
And this is a deployment/development strategy that is flawed. It would be
better to ship a product without asserts turned on, but if you have to
show internal issues to a customer then don't use asserts - use exceptions
or similar to do this at run time. Just use asserts for quality assurance
prior to shipping.
For me, the golden rule with D is don't use asserts to report errors in
production releases.
--
Derek Parnell
Melbourne, Australia
More information about the Digitalmars-d
mailing list