Not all thrown errors can be caught and successfully dealt with by a catch
block. In some situations, the best way to handle an exception is to
terminate the program. Two special library functions are implemented in
C++ to process exceptions not properly handled by catch blocks or exceptions
thrown outside of a valid try block. These functions are
unexpected() and terminate().
Related References