On Thu, 19 Aug 2010 18:48:15 -0400, Andrei Alexandrescu
<[email protected]> wrote:
On 08/19/2010 03:45 PM, Andrej Mitrovic wrote:
Yes, I've added it as Throwable. But there's one more problem with
your code, this:
catch (Throwable e) // have to use Throwable for collateral
exceptions
// or maybe use a cast like below
{
writeln("Primary exception: ", typeid(e), " ", e);
while ((e = e.next) !is null)
{
writeln("Collateral exception: ", typeid(e), " ", e);
}
}
Will output ~5000 lines of "Exception .." stuff. Oh and in the book it
looks like you're counting from 100 to 1 (for the throws from gun),
which makes sense. Yet I'm getting back output from 1 to 100. Not sure
what's going on there..
The reverse ordering seems to be a bug in the implementation.
Don't have the book in front of me, but it is important that collateral
exceptions be ordered in reverse order of insertion, otherwise, adding a
collateral exception involves a linear search to the end of the linked
list.
-Steve