Ну, собственно, ИМХО, лучше гарантировать валидацию типизацией, типа на вход принять данные, провалидировать и сразу переложить в новую сущность, которая гарантированно проверена. А так достаточно хрупко. Хотя зависит от домена, наверное, и от принятых подходов