Why throw an exception, why not just add to the error collection and return false?
A boolean is helpful on save even if the exceptions continue going forward.