Выбрасывание исключения после завершения для l oop с настраиваемым сообщением - PullRequest
0 голосов
/ 07 мая 2020

Как мне go передать переменные неудачного метода с использованием исключений? У меня есть for l oop, где каждый раз, когда итерация l oop терпит неудачу, он добавляет переменную в список неудачных элементов, которые затем передаются в исключение и печатаются с помощью getMessage ().

public class SendMail {
    public void send(List<String> inputlist) throws MessagingException {
            List<String> failedItems = new ArrayList<>();
            for (String item : inputlist) {
                try {
                    // Do something
                } catch (Exception e) {
                    failedRecipients.add(item);
                    continue;
                }
            }
            // Custom exception with string of failed items.
            if (!failedItems.isEmpty()) {
                throw new MessagingException(String.join(",", failedItems));
            }
        }
}
public class ProcessStep {
public void execute(List<String> inputlist) throws XferException {
            try {
                sendmail.send(inputlist); //String list gets passed here.
            } catch (MessagingException e) {
                log.logger("Failed for items: " + e.getMessage()) //Print string of failed items here
            }
            throw new MalwareException;
        }
    }
}

Есть ли более элегантный способ сделать это?

1 Ответ

1 голос
/ 07 мая 2020

Вы можете определить собственное исключение с помощью конструктора, который принимает любое количество параметров.

...