Essa pergunta pode ser um pouco antiga, mas porque acho que a resposta "certa" aqui é apenas uma maneira de levar a alguns problemas ocultos, problemas mais adiante no seu código. Mesmo se houver um pouco de controvérsia , existem exceções verificadas por um motivo.
A maneira mais elegante, na minha opinião, você pode encontrar foi dada por Misha aqui. Exceções de tempo de execução agregadas nos fluxos do Java 8
, apenas executando as ações em "futuros". Assim, você pode executar todas as peças de trabalho e coletar exceções que não funcionam como uma única. Caso contrário, você poderá coletá-los todos em uma Lista e processá-los posteriormente.
Uma abordagem semelhante vem de Benji Weber . Ele sugere criar um tipo próprio para coletar peças de trabalho e não peças de trabalho.
Dependendo do que você realmente deseja obter um mapeamento simples entre os valores de entrada e os valores de saída, as exceções também podem funcionar para você.
Se você não gostar de nenhuma dessas maneiras, considere usar (dependendo da Exceção original) pelo menos uma exceção.