...
A replacement for any of the handler functions must meet the semantic requirements specified by the appropriate Required behavior: clause of the replaced function.
New Handler
The requirements for a replacement new_handler
are specified by [new.handler], paragraph 2:
Required behavior: A
new_handler
shall perform one of the following:
— make more storage available for allocation and then return;
— throw an exception of typebad_alloc
or a class derived frombad_alloc
;
— terminate execution of the program without returning to the caller;
Terminate Handler
The requirements for a replacement terminate_handler
are specified by [terminate.handler], paragraph 2:
Required behavior: A
terminate_handler
shall terminate execution of the program without returning to the caller.
Unexpected Handler
The requirements for a replacement unexpected_handler
are specified by [unexpected.handler], paragraph 2. unexpected_handler
is a deprecated feature of C++.
Required behavior: An
unexpected_handler
shall not return. See also 15.5.2.
Noncompliant Code Example
...