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.