Обработка множественных исключений
Доброго времени суток.
При обработке пакетных операций бывает необходимо найти все ошибки, если таковые имеются, и предоставить клиентскому коду возможность обработать каждую из них. Сразу хочу сказать, что механизм set/get cause не подходит, т.к. ошибки могут не иметь связи друг с другом.
Я нашел два способа как это можно осуществить:
- Создать пользовательское исключение, которое содержит внутри себя список всех ошибок. Все найденные ошибки добавляются в этот список, а потом это исключение выбрасывается из метода выполняющего пакетную оперцию.
- Использовать обработчик ошибок, что-то вроде
batchOperation(SomeBatch batch, ExceptionHadler handler)
Хотелось узнать, когда стоит и не стоит использовать каждый из этих подходов? Есть ли какие-нибудь best practices касательно этого вопроса?