2008-12-27 105 views
2

假設您正在開發一個庫,其中包含要通過DLL(在Windows或類似的共享庫,如Linux ELF共享庫)導出的類。這些類的成員函數會從標準庫或庫定義的異常中引發異常。DLL /共享庫的異常

在DLL中編寫代碼以將異常拋出到映射DLL地址空間的模塊是完全安全的嗎?在開發客戶端模塊異常的共享庫中開發軟件組件時需要考慮什麼?

非常感謝。

回答

2

我同意,期望跨庫引發的異常正常工作是完全合理的。但是,如果遇到一些故障,不要太驚訝。谷歌搜索"gcc shared object exceptions"(查看團體)也顯示了很多人多年來遇到很多問題。我最後一次使用gcc(ca 2003)嘗試它時,我放棄了,因爲它不適合我。希望從那時起情況有所改善。

1

您的圖書館拋出異常或允許異常從底層框架冒出是完全合理的。但是,您需要小心爲庫的用戶記錄此行爲,以便代碼的使用者可以採取適當的措施來處理代碼可能拋出(或未捕獲)的任何異常。