2008-12-27 173 views
2

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

在DLL中编写代码以将异常抛出到映射DLL地址空间的模块是完全安全的吗?在开发客户端模块异常的共享库中开发软件组件时需要考虑什么?

非常感谢。

回答

2

我同意,期望跨库引发的异常正常工作是完全合理的。但是,如果遇到一些故障,不要太惊讶。谷歌搜索"gcc shared object exceptions"(查看团体)也显示了很多人多年来遇到很多问题。我最后一次使用gcc(ca 2003)尝试它时,我放弃了,因为它不适合我。希望从那时起情况有所改善。

1

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