While searching SO for approaches to error handling related to business rule validation, all I encounter are examples of structured exception handling.
MSDN and many oth
In my opinion, if in doubt, throw exceptions on business rule validation. I know this is somewhat counter-intuitive and I may get flamed for this, but I stand by it because what is routine and what is not depends on the situation, and is a business decision, not a programming one.
For example, if you have business domain classes that are used by a WPF app and a WCF service, invalid input of a field may be routine in a WPF app, but it would be disastrous when the domain objects are used in a WCF situation where you are handling service requests from another application.
I thought long and hard, and came up with this solution. Do the following to the domain classes: