The GC, destructors, exceptions and memory corruption

Vladimir Panteleev vladimir at thecybershadow.net
Fri May 13 01:33:01 PDT 2011


On Fri, 13 May 2011 11:22:11 +0300, Daniel Gibson <metalcaedes at gmail.com>  
wrote:

> It may be sane to just define that destructors are nothrow and if they
> throw anyway to terminate the program.
>
> What is the current behaviour anyway? ;)

D2 throws a FinalizeError (which is an Error, so "not recoverable").
D1 just allows the exception to propagate through the GC to whatever  
caused a GC to run.
Both leave the GC in an indeterminate state, as far as I can tell.

-- 
Best regards,
  Vladimir                            mailto:vladimir at thecybershadow.net


More information about the Digitalmars-d mailing list