English 中文(简体)
来自DLL/共享库的异常
原标题:
  • 时间:2008-12-27 18:07:27
  •  标签:

假设您正在开发一个具有类库的库,并通过DLL(在Windows上,或类似的共享库,如Linux ELF共享库)进行导出。这些类的成员函数会抛出异常,这些异常来自于标准库或库定义的异常。

在使用DLL编程的情况下,将异常抛出到映射DLL地址空间的模块是完全安全的吗?在开发共享库中的软件组件时,需要考虑哪些因素才能向客户端模块抛出异常?

非常感谢。

最佳回答

我同意跨库边界抛出的异常能够正常工作是非常合理的。但是,如果你遇到了一些小问题,也不要太惊讶。通过谷歌搜索“gcc共享对象异常”(也要查看相关群组),可以看到很多人在多年间遇到了很多问题。我最后一次尝试是在2003年使用gcc时,因为它根本无法正常工作,我只能放弃。希望自那时以来情况已经改善了。

问题回答

你的库完全可以抛出异常或允许异常从基础架构中冒泡。 但是,你需要小心地为你库的用户记录这种行为,以便你的代码的使用者可以采取适当的措施来处理可能由你的代码抛出(或未被捕获)的任何异常。





相关问题
热门标签