Plan for Exceptions and @nogc?

Matthias Bentrup via Digitalmars-d digitalmars-d at puremagic.com
Tue Feb 17 13:29:59 PST 2015


On Tuesday, 17 February 2015 at 20:48:07 UTC, Jonathan Marler 
wrote:
> That would work if you didn't have to unwind the stack but 
> unfortunately you do.  The catch block exists in the context of 
> the function it is written in.  That means it assumes the stack 
> pointer and stack variables are all in the context of it's 
> defining function.  If you executed the catch code when the 
> stack wasn't unwound, then it wouldn't know where any of the 
> variables were.  Does that make sense?  Think about it for a 
> minute.  You proposal suggests that the catch code can be 
> executed no matter how many child functions have been added to 
> the stack.  This is impossible since the catch code no longer 
> knows where all of it's stack variables are.  Normally it uses 
> an offset to the stack pointer but now it has been changed.  
> That's why you have to unwind the stack.

So the catcher would have to behave like a delegate.


More information about the Digitalmars-d mailing list