14 Exception handling [except]

14.6 Special functions [except.special]

14.6.2 The std​::​terminate function [except.terminate]

In some situations, exception handling is abandoned for less subtle error handling techniques.
[Note 1: 
These situations are:
— end note]
In such cases, the function std​::​terminate is invoked ([exception.terminate]).
In the situation where no matching handler is found, it is implementation-defined whether or not the stack is unwound before std​::​terminate is invoked.
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 the function std​::​terminate is invoked.
In all other situations, the stack shall not be unwound before the function std​::​terminate is 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 function std​::​terminate.