15 Exception handling [except]

15.5 Special functions [except.special]

15.5.3 The std::uncaught_exception() function [except.uncaught]

The function std::uncaught_exception() returns true after completing the initialization of the exception object ([except.throw]) until completing the activation of a handler for the exception ([except.handle], [uncaught]). This includes stack unwinding. If the exception is rethrown ([except.throw]), std::uncaught_exception() returns true from the point of rethrow until the rethrown exception is caught again.