2

假设您正在开发一个包含要通过 DLL 导出的类的库(在 Windows 上,或类似的共享库,如 Linux ELF 共享库)。这些类的成员函数从标准库或库定义的异常中抛出异常。

在 DLL 中编码以向映射 DLL 地址空间的模块抛出异常是完全安全的吗?在向客户端模块抛出异常的共享库中开发软件组件时要考虑哪些因素?

非常感谢你。

4

2 回答 2

2

我同意期望跨库边界抛出的异常正常工作是完全合理的。但是,如果您遇到一些小故障,请不要太惊讶。谷歌搜索“gcc shared object exceptions”(也可以查看组)显示很多人多年来遇到了很多问题。上次我用 gcc(约 2003 年)尝试它时,我放弃了,因为它对我不起作用。希望从那时起情况有所改善。

于 2008-12-27T20:15:43.217 回答
1

您的库抛出异常或允许异常从底层框架冒出是完全合理的。但是,您需要小心地为库的用户记录此行为,以便代码的使用者可以采取适当的措施来处理代码可能抛出(或未被捕获)的任何异常。

于 2008-12-27T20:02:54.193 回答