Vladimir Panteleev wrote:
On Fri, 13 May 2011 11:25:01 +0300, Don <[email protected]> wrote:
Alexander wrote:
On 13.05.2011 06:53, Vladimir Panteleev wrote:
Thus, my question is: what's the expected behavior of D programs
when a destructor throws?
I would say, the only expected (and correct, IMHO) behavior should
be termination of the program because of unhandled exception.
/Alexander
Are you talking about *finalizers* or *destructors* ?
Throwing from inside a destructor should definitely work (unlike C++).
But finalizers should probably be nothrow.
How would you distinguish the two in the language? Class destructors =
finalizers?
Yes.
struct destructor = destructor
Come to think of it, SafeD shouldn't allow accessing anything on the
heap in finalizers as well...
Yeah. It's pretty hard to come up with a use case for a finalizer.