理想情况下,我不想丢失抛出的确切异常,因为上层有时会捕获特定的异常,但是我想在特定的层添加更多信息。我也不知道自己之下的所有异常类型,也不希望知道所有30-50种异常类型。如何clone()然后设置新消息?
似乎我必须进行讨厌的反射,或者发明自己的实现CopiableException接口的范例,或者比反射更好的步骤,但是不能执行第三者异常:(。
编辑:由于第一个发布者误解了问题,因此详细信息
在我下面,一些库抛出NioClosedSocketException或它们抛出NastyBugException。我需要添加信息,但是我需要保持相同的确切类型NioClosedException或NastyBugException或其他1000个我不知道的异常。原因在我上面是我也不控制的代码(客户端代码),并且它们具有依赖于特定异常的代码,但是我想在异常中添加信息,同时保持类型相同。我似乎无法在Java中找到它的事实似乎是一个真正的buzzkill :(。我以为可以肯定,除了反射之外,还会存在某些东西,这有点慢,但无论如何,它比填充堆栈跟踪要慢,并且现在我想起来可以忽略不计了吗?但是在整个过程中撒些东西很难看(尽管我还是可以这样做)。
谢谢, 院长