Even though destructors for fully-constructed subobjects
are invoked when an exception is thrown
during the execution of a constructor (
[except.ctor]),
their exception specifications do not contribute
to the exception specification of the constructor,
because an exception thrown from such a destructor
would call the function
std::terminate
rather than escape the constructor (
[except.throw],
[except.terminate])
.