В идеале, я не хочу терять точное создаваемое исключение, так как верхние слои иногда ловят определенные, НО я хочу добавить больше информации на конкретном слое. Я также не знаю всех типов исключений, и я не хочу знать все 30-50 типов. Как клонировать () затем установить новое сообщение?
кажется, что мне пришлось бы заняться неприятными рефлексиями и так далее, или придумать свою собственную парадигму реализации интерфейса CopiableException или чего-то, что на шаг лучше, чем рефлексия, но не может делать сторонние исключения: (.
РЕДАКТИРОВАТЬ: Поскольку первый постер неправильно прочитал вопрос, вот подробности
ниже меня некоторые библиотеки генерируют исключение NioClosedSocketException или они генерируют исключение NastyBugException. Мне нужно добавить информацию, НО мне нужно сохранить тот же тип NioClosedException или NastyBugException или 1000 других исключений, о которых я не знаю. Причиной выше меня является код, который я также не контролирую (клиентский код), и у них есть код, который зависит от конкретных исключений, НО я хочу добавить информацию об исключении, сохраняя при этом тип. То, что я не могу найти это в java, похоже на настоящее buzzkill :(. Я точно думал, что что-то существовало бы, кроме отражения, которое немного медленное, но, возможно, это медленнее, чем заполнение трассировки стека в любом случае и теперь я ничтожен, когда думаю об этом, но разбрызгивание всего этого кажется немного уродливым (хотя я могу это сделать в любом случае).
спасибо,
Декан