
Stefan Seefeld wrote:
Alexander Terekhov wrote:
Gabriel Dos Reis wrote:
On Thu, Apr 16, 2009 at 7:11 PM, Alexander Terekhov <terekhov@web.de> wrote:
Scott McMurray wrote: [...]
I don't see how you're going to get the "at throw point" you're asking for.
Two-phase EH.
An implementation strategy used by some compilers. It is not something required by C++. It is mysterious why some popular compilers insist on using that strategy when they know they are dealing with C++ applications.
Because that strategy allows to not unwind the stack for unexpected exceptions.
Can you elaborate on that a little ? 15.5.2/1 says
"If a function with an exception-specification throws an exception that is not listed in the exception-specification, the function void unexpected(); is called (18.6.2) immediately after completing the stack unwinding for the former function."
So, stack unwinding certainly has to happen, from the call site down to the point where the exception is not allowed to pass.
That's only if you use exception-specifications.
Am I missing something ?
15.3/9. regards, alexander.