std::set_terminate(3)

NAME
std::set_terminate - std::set_terminate

Synopsis
   Defined in header <exception>
   std::terminate_handler set_terminate( std::terminate_handler f ) (until C++11)
   throw();
   std::terminate_handler set_terminate( std::terminate_handler f ) (since C++11)
   noexcept;
   Makes f the new global terminate handler function and returns the previously
   installed std::terminate_handler.
   This function is thread-safe. Every call to std::set_terminate
   synchronizes-with (see std::memory_order) the subsequent (since C++11)
   std::set_terminate and std::get_terminate

Parameters
   f - pointer to function of type std::terminate_handler, or null pointer

Return value
   The previously-installed terminate handler, or a null pointer value if none was
   installed.

Example
// Run this code
 #include <iostream>
 #include <cstdlib>
 #include <exception>
 int main()
 {
     std::set_terminate([](){
         std::cout << "Unhandled exception" << std::endl;
         std::abort();
     });
     throw 1;
 }

Possible output:
 Unhandled exception
 bash: line 7: 7743 Aborted (core dumped) ./a.out

See also
   terminate function called when exception handling fails
                     (function)
   get_terminate obtains the current terminate_handler
   (C++11) (function)
   terminate_handler the type of the function called by std::terminate
                     (typedef)