An exception is considered uncaught
after completing the initialization of the exception object
until completing the activation of a handler for the exception ([except.handle]
As a consequence, an exception is considered uncaught
during any stack unwinding resulting from it being thrown.
— end note
If an exception is rethrown ([expr.throw]
it is considered uncaught from the point of rethrow
until the rethrown exception is caught.
The function std::uncaught_exceptions
returns the number of uncaught exceptions in the current thread.