Struct field destructor not called when exception is thrown in the main struct destructor
Steven Schveighoffer
schveiguy at gmail.com
Fri Oct 16 16:00:07 UTC 2020
On 10/16/20 9:12 AM, tchaloupka wrote:
> So when the exception is thrown within Foo destructor (and it's bad on
> it's own but can easily happen as destructors aren't nothrow @nogc by
> default).
>
> Is this behavior expected?
I would say it's a bug. The compiler is going to call the member
destructor even if the hand-written destructor does it too. If the
compiler wants to take responsibility for cleaning up members, it should
take full responsibility. In fact, there is no way to instruct the
compiler "I'm handling the destruction of this member", so I don't see
why it should matter if you exit the function via exception it should be
any different.
-Steve
More information about the Digitalmars-d-learn
mailing list