What is this?
bobef
bobef at abv_nospam.bg
Tue Oct 23 06:39:55 PDT 2007
Sean Kelly Wrote:
> Lars Ivar Igesund wrote:
> > bobef wrote:
> >
> >> Hey guys,
> >>
> >> do you know what is this and could cause it?
> >> "An exception was thrown while finalizing an instance of class whatever".
> >
> > I believe it means an exception is thrown in a destructor or similar (and
> > afaik a Tango feature).
>
> This is exactly right. Throwing an exception from a dtor constitutes a
> programming error and Tango attempts to discourage this by handling it
> in much the same way as an assertion failure. The exception is wrapped
> in a FinalizeException before passing it up the stack. This is one of
> the few (or perhaps the only) place in the Tango runtime where I decided
> to actually restrict legal programming behavior. One reason for this is
> that currently, multiple in-flight exceptions will not terminate a D
> application--one will simply replace the other (this could be changed in
> the runtime as well but I haven't done so yet). Another is that it's
> nearly impossible to write correct code if dtors are allowed to throw.
> C++ uses the no-throw spec for dtors in the STL for this reason, and I
> believe that "encouraging" the same behavior in user code is worthwhile.
>
>
> Sean
Thanks.
More information about the Digitalmars-d
mailing list