The GC, destructors, exceptions and memory corruption

Daniel Gibson metalcaedes at gmail.com
Fri May 13 01:41:04 PDT 2011


Am 13.05.2011 10:33, schrieb Vladimir Panteleev:
> 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").

So the program is terminated? In that case you don't really have to
worry about the state of the GC, right?

> 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.
> 



More information about the Digitalmars-d mailing list