假设您正在开发一个库,其中的类可通过 DLL 导出(在 Windows 上,或类似的共享库,如 Linux ELF 共享库)。这些类上的成员函数抛出来自标准库或库定义的异常的异常。
在 DLL 中编写代码向映射 DLL 地址空间的模块抛出异常是完全安全的吗?在向客户端模块抛出异常的共享库中开发软件组件时需要考虑哪些因素?
非常感谢。
最佳答案
我同意,期望跨库边界抛出的异常能够正常工作是完全合理的。但是,如果您遇到一些故障,请不要太惊讶。 Google 搜索 "gcc shared object exceptions" (也查看团体)显示多年来很多人遇到了很多问题。上次我尝试使用 gcc(ca 2003)时,我放弃了,因为它对我不起作用。希望从那时起情况有所改善。
关于DLL/共享库的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/395223/