Похоже, у вас есть такой код ....
foreach(var record in records)
{
bool valid = Validate(record);
if(!valid)
{
throw new Exception("Record was invalid!");
}
}
Вместо этого вы должны сделать это так:
var validationErrors = new List<ValidationError>();
foreach(var record in records)
{
ValidationResult validationResult = Validate(record);
if(!validationResult.Valid)
{
validationErrors.Add(validationResult.ValidationError);
continue;
}
}
Таким образом, вы не используете дорогостоящие исключения для неисключительных ситуаций и можете продолжить обработку остальных действительных записей.