In the situation where no matching handler is found, it is
implementation-defined whether or not the
stack is unwound
before
std::terminate()
is called
. In the situation where the search for a handler (
[except.handle]) encounters the
outermost block of a function
with a non-throwing exception specification (
[except.spec]), it is
implementation-defined
whether the stack is unwound, unwound partially, or not unwound at all
before
std::terminate() is called
. In all other situations, the stack shall not be unwound before
std::terminate()
is called
. An implementation is not permitted to finish stack unwinding
prematurely based on a determination that the unwind process
will eventually cause a call to
std::terminate().