This method should probably return a set (i.e. array) of violations instead. Having a violation is in the regular flow of the program, because that is its purpose, it is not exceptional behaviour.