Catching Errors

Jacob Carlborg via Digitalmars-d digitalmars-d at puremagic.com
Fri Jan 20 09:00:12 PST 2017


On 2017-01-20 15:22, Adam D. Ruppe wrote:

> I'd suggest writing a new assert handler for your framework that does
> something different, then you can get a bit more control over it.

Unfortunately setting a new assert handler requires it to be nothrow 
[1]. I would most likely want it to be throw an exception instead of an 
error to bail out of the current test, but continue with the rest of the 
tests.

Sure, it's possible to use a completely different than "assert", but 
that feels quite a shame when we have a built-in keyword for this purpose.

> Though, the built in assert is underpowered regardless... oh, how I wish
> it even had the convenience of C's assert, but I really want it to go a
> step further and show the values as well as the code that is failing.
>
> int a = 0;
> int b = 1;
> assert(a == b);
>
> Assertion `a == b` failed: test.d(3)
>  a = 0
>  b = 1

AST macros :)

[1] http://dlang.org/phobos/core_exception.html#.AssertHandler

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list