On the other hand, constructors don’t allow returning an error because C++ has exceptions.
Didn't constructors (1979) come before exceptions (1986)? So no that's not the case.
So yeah, you're right that constructors led to exceptions, unless the designers of C++ had been willing to go back to the drawing board and entirely redo constructors.