15 Exception handling [except]

15.5 Special functions [except.special]

15.5.2 The std::uncaught_exceptions() function [except.uncaught]

An exception is considered uncaught after completing the initialization of the exception object ([except.throw]) until completing the activation of a handler for the exception ([except.handle]). This includes stack unwinding. If an exception is rethrown ([expr.throw], [propagation]), it is considered uncaught from the point of rethrow until the rethrown exception is caught. The function std::uncaught_exceptions() ([uncaught.exceptions]) returns the number of uncaught exceptions in the current thread.