Эксепшен нужен в том случае, если работа программы не может быть продолжена. Например если нужно получить данные из БД, но соединение с БД не установлено. То в этом случае вызываем эксепшен, логируем ошибку и завершаем работу программы.
Валидатор нужен для проверки данных, например входных данных, когда нужно заполнить какую-то форму, в которой есть обязательные поля. В этом случае достаточно вернуть массив/объект с ошибками, и завершить работу программы. Ошибки валидации не являются ошибками работы программы.