adds a "reason" to contract exceptions - where a developer has specified more than one condition that must be met, the framework will throw an exception which indicates which one failed and provide the expression which did not evaluate to true.