Validating domain objects Erotic asian text chat
data on construction can be considered a good practice.And by sanity check you can understand a simple action that will analyse passed value and decide whether this value makes sense in context of VO or not. It is your application responsibility to validate the fact that user's email address will not be duplicated, will be from whitelisted domain, refer to valid MX record and so on.
Good frameworks will allow you to do so and will not force you to couple together application layers. When you think about validation and making data consistent think about it in context of the layer you are working on.Presentation layer goal is to communicate with user and should do it nicely to support user.So for example creating an - end date cannot be lower than start date and so on. And indeed these rules can differ depends on context - you may want to allow register to site only people that have company's address but anyone can send a complaint using contact form.Regardless VO constraints remain the same - just a valid email string.
And again - this is not responsibility of the domain model to be coupled to user messages (that can also depend on the context).
Especially that throwing an exception is not the best way to tell the user that something is no ok (but it is good to communicate in such way with developers).