Extracted ValueException into an interface for use with the ValueVisitor