WCF Assignment 

You should have some deterministic field in your fault contract which can help programatically classify the type of fault.
E.g., an errorCode or errorType. The message and reason fields are too generic and will contain different texts that cannot be anticipated by the client.