Zastanawiam się jak mogę przechwycić wszystkie wyjątki jakie mogą być wrzucone w danej metodzie i zapisać je do listy.
Przykład. Mam DAO a w nim metodę validate()
public void validate(Object person) throws AppException {
if (person.getAge() < 18) {
throw new AppException("Too young");
}
if (person.getName() == null) {
throw new AppException("Name cannot be empty");
}
if (!person.isNice()) {
throw new AppException("Be nice!");
}
}
I teraz gdy sprawdzę Person bez imienia i w wieku 13 lat to dostanę tylko "Too young". W jaki sposób najlepiej przechwycić całą listę (w tym przypadku AppException("Too young") i AppException("Name cannot be empty"))? Pierwsza moja myśl to stworzenie czegoś w tym stylu.
public void validate(Object person) throws AppException {
List<AppException> errorList = new ArrayList<>();
if (person.getAge() < 18) {
errorList.add(new AppException("Too young)"));
}
if (person.getName() == null) {
errorList.add(new AppException("Name cannot be empty"));
}
if (!person.isPerson()) {
errorList.add(new AppException("Be nice!"));
}
if(errorList.isEmpty()) {
throw new AppException(errorList);
}
}
Macie może lepszy pomysł?