Це запитання може бути трохи старим, але тому, що я думаю, що "правильна" відповідь тут лише один із способів, який може призвести до прихованих проблем пізніше у вашому коді. Навіть якщо є суперечка , перевірені винятки існують не просто так.
На мою думку, найелегантніший спосіб, який ви можете знайти, був наданий Мішею. Тут викладені винятки у виконанні потоків Java 8
, просто виконуючи дії у "ф'ючерсах". Таким чином, ви можете запускати всі робочі частини та збирати непрацюючі винятки як єдину. В іншому випадку ви можете зібрати їх у списку та обробити їх пізніше.
Аналогічний підхід походить від Бенджі Вебера . Він пропонує створити власний тип для збору робочих, а не працюючих деталей.
Залежно від того, що ви дійсно хочете домогтися простого відображення між вхідними значеннями та вихідними значеннями, що сталися, Винятки також можуть працювати для вас.
Якщо вам не подобається жоден із цих способів, рекомендуйте використовувати (залежно від оригінального винятку) принаймні власне виключення.