C++ c++;在另一个库中继承库异常以将其传递给调用代码

C++ c++;在另一个库中继承库异常以将其传递给调用代码,c++,exception,C++,Exception,考虑以下情况:我有一个包含第三方库的库。这个第三方库抛出从std::exception派生的非常好、有用的异常。我希望将这些异常传递给调用我的库的代码,但我不希望在调用代码中也包含第三方库。第三方库以后可能会发生变化 在我的库中创建从第三方异常继承的我自己的类似乎是有意义的,如下所示: class myException: public thirdParty {}; 有没有一种简单的方法可以捕获第三方的实例并将其复制到myException?稍后我可能会向myException添加功能,但现在

考虑以下情况:我有一个包含第三方库的库。这个第三方库抛出从
std::exception
派生的非常好、有用的异常。我希望将这些异常传递给调用我的库的代码,但我不希望在调用代码中也包含第三方库。第三方库以后可能会发生变化

在我的库中创建从第三方异常继承的我自己的类似乎是有意义的,如下所示:

class myException: public thirdParty {};
有没有一种简单的方法可以捕获第三方的实例并将其复制到myException?稍后我可能会向myException添加功能,但现在,我真的只想让调用代码可以使用第三方,而不包括第三方的库

当然,我知道调用代码会知道第三方,因为来自第三方库的头包含在我的库头中,而我的库头包含在调用代码中。但我正试图建立一个契约,上面写着,“嘿,这些是我的库抛出的异常。稍后,我可能会交换第三方库,但我仍然会抛出与它的异常相同的异常。”


是这样吗?有更好的方法吗?我是否应该让我的调用代码知道第三方异常?

如果目标是减少与第三方库的耦合,那么你应该考虑你的代码作为边界。因此,您不会将实现泄漏给用户

问题是为什么您的用户需要关心第三方库抛出的异常?他们应该关心代码的抽象和接口

因此,我不会继承这些异常的,而是创建一系列反映我希望代码抛出的异常的异常。你可以给他们相同的名字,但你应该是这些例外的所有者