If a constructor fails to establish the invariant, the object is in invalid state and the caller must be notified.
Error codes cannot be used for that purpose because a constructor is not allowed to return a value.