Этот вопрос может быть немного старым, но потому что я думаю, что «правильный» ответ здесь - это только один из способов, который может привести к некоторым проблемам, скрытым в дальнейшем в вашем коде. Даже если есть небольшое противоречие , проверенные исключения существуют по причине.
На мой взгляд, самый изящный способ, который вы можете найти, был предложен Мишей. Агрегируйте исключения времени выполнения в потоках Java 8
, просто выполняя действия в «будущих». Таким образом, вы можете запустить все рабочие части и собрать неработающие исключения как единое целое. В противном случае вы можете собрать их все в Список и обработать позже.
Аналогичный подход исходит от Бенджи Вебера . Он предлагает создать собственный тип для сбора рабочих и не рабочих частей.
В зависимости от того, что вы действительно хотите добиться простого отображения между входными значениями и выходными значениями, возникшие исключения могут также работать для вас.
Если вам не нравится ни один из этих способов, рассмотрите возможность использования (в зависимости от исходного исключения) как минимум собственного исключения.