The user interface would use a try...catch block to catch any exceptions that the Phone property might throw. There would be code inside the catch block to respond to any exceptions that occur and notify the user of any issues. public string Phone { get { return this.phone; } set { if (!Regex.IsMatch(value, @"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}")) { throw new FormatException("Phone number is invalid. Ex: 715-555-1234"); } this.phone = value; } }