Нет, я не думаю, что метод валидации должен выдавать исключение.
Это создало бы немного анти-паттерна, так как клиентский код, вызывающий метод, разумно ожидал бы исключения, и затем должен был бы его перехватить. Поскольку обычно рекомендуется, чтобы исключения не использовались для управления потоком, почему бы просто не вернуть значение, указывающее, была ли проверка успешной или нет. Код клиента может проверить возвращаемое значение и действовать соответствующим образом.
По сути, вы выполняете то же самое, что и при создании исключения, но без дополнительных затрат и плохой семантики фактического создания исключения.
Исключения должны быть зарезервированы для действительно исключительных условий, а не для нормальной работы программы. Мне кажется, что провал проверки - это вполне нормальное состояние, которое можно ожидать во время повседневной работы приложения. Это было бы легко обработано вызывающим кодом, и нормальная работа продолжалась бы. Как правило, это не относится к исключениям.