when stack unwinding is done, and a suitable catch statement is found, destructors run, this is in the standard
Yeah, but that can be more precise; destructors run during stack unwinding, which occurs before the catch statement is entered. The destruction of objects during stack unwinding is sequenced before entering a handler of the function-try-block of the constructor or destructor, if any