Looks like you're trying to use exceptions for validation. This might work but if you want to get everything which is wrong with the thing you're trying to validate, then you need to do something different. A bit of pseudocode to give you a general idea:
public ValidationResult validateInput(Input input) {
ValidationResult result = new ValidationResult();
if (input.someField() == null) {
result.addError("Some field cannot be null");
}
//etc
return result;
}
The idea is that you have a ValidationResult object which will store everything which is wrong with the input. Once the validation is done you can process it like that:
ValidationResult result = validateInput(someInput);
if (result.hasErrors()) {
for (ErrorMessage message : result.getErrors()) {
log.error(message.getMessage());
} else {
//success
}
You can write your own ValidationResult class or research into validation frameworks to find one which works for the purpose.