我正在为库创建一个包装器。该库引发了多种异常:
A B C D E F.
某些类型是可重复的,而其他类型则不是。为了简化包装器客户端的异常处理,我将异常包装成两种已检查的异常:
RetriableException and Exception.
因此,我库中任何函数的签名如下:
public void foo() throws RetriableException, Exception {
...
}
然而,包装器的客户端应该能够直接捕获异常A,B,C ..以防他们想对它们采取某些特定的操作。
try {
wrapper.foo()
} catch (A e) {
doSomething()
}
我应该如何模拟这种行为?
一种方法是要求客户端执行exception.getCause()但它感觉不直观。