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 encounters the
outermost block of a function
with a non-throwing
exception specification, it is
implementation-defined
whether the stack is unwound, unwound partially, or not unwound at all
before the function
std::terminate is called
. In all other situations, the stack shall not be unwound before
the function
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 the function
std::terminate.