[except.terminate] (original) (raw)

In the situation where no matching handler is found, it isimplementation-defined whether or not the stack is unwound before std​::​terminate is invoked.

In the situation where the search for a handler ([except.handle]) exits the function body of a function with a non-throwing exception specification ([except.spec]), it isimplementation-defined whether the stack is unwound, unwound partially, or not unwound at all before the function std​::​terminate is invoked.

In all other situations, the stack shall not be unwound before the function std​::​terminateis invoked.

An implementation is not permitted to finish stack unwinding prematurely based on a determination that the unwind process will eventually cause an invocation of the functionstd​::​terminate.