From: Darren Cook (darren_at_[hidden])
Date: 2003-05-08 18:54:04


> Basically, the N actions will be able to be customized (that is, you'll be
> able to add your own levels).
> What you say, about throwing an exception, also will be possible, since
> you'll be able to set a "handler" for each level of assertion.
> So, for instance, for assertions with level Debug (default), you can set a
> handler that will throw. Just like that! At run-time! (you can leave the
> default handler for assertions, that will prompt the user, etc. , or just
> set your own, which can throw an exception).

This sounds good. So if I want to do a test that a function does actually
assert with bad data I can switch to exceptions, do a BOOST_CHECK_THROW()
test, then switch back to normal assertion behaviour.

Following on from that, there seems some overlap between your proposed
asserts and Boost.Test's BOOST_CHECK_() macros. I wonder if it would be
possible to have an assert handler for use in the unit test framework, and
then I can use SMART_ASSERT() in both main code and in test code and only
have to learn one syntax.

> others have picked up and continued developing it. Some of the initial
> constraints have been loosened, therefore, some of the ASSERTs became
> unnecessary.
>
> Had such an ASSERT throw, some handler might catch it, and this could go
> undetected.
> What do you think?

Yes, that is another problem with asserts throwing exceptions that I'd not
considered.

Darren