On 2012-03-09 17:56, Jonathan M Davis wrote:
The current implementation may not skip them, but if so, that might actually
be a bug. Errors are not intended to be recoverable, so you can't rely on them
hitting finally blocks, scope statements, or destructors. They may very well do
so at present. While it's not guaranteed that they will, I'm not sure that
it's guaranteed that they _won't_. So, it may or may not be a bug if they do.
It was never intended that AssertError or any other Error be particularly
catchable, but it's also true that D is a systems programming language, so
it'll let you do stuff which is unsafe, so if you know what you're doing, then
there are circumstances where you can get away with (unit testing is one
example of where catching AssertErrors might make sense). But you have to know
what you're doing, since it's _not_ safe.
- Jonathan M Davis
If it's not safe to catch AssertErrors, how is the executable supposed
to be able to continue a unit test run when an AssertError has been thrown?
I'm referring to the suggested changes that a unit test run should be
able to continue in other modules even if an AssertError has been
thrown. It seems to be issue 5283:
http://d.puremagic.com/issues/show_bug.cgi?id=5283
--
/Jacob Carlborg