Please see: Best practices: throwing exceptions from properties for an explanation and discussion on why throwing exceptions from properties is bad.
Admittedly that post speaks about property getters.
Setters are generally seen by consumers as simply setting a private field hidden by the property and maybe doing some additional stuff as required, exceptions are unexpected behaviour and could you imagine having to enclose each set statement inside a try block?
While it may be accepted behaviour by guideline, it's a nightmare for guessing for developers, and validation logic should be contained in a separate method and then called from the property if need be.
If you need the validation or special behaviour when setting properties you should use a set method e.g. SetMyProp(string value)
as it brings a distinction to it that it may lead to an exception etc.
If you're using the properties for something like a WPF model then you should make use of WPF's built-in validation for data instead.