2015-02-05 85 views
0

我們有一個暴露COM的.NET庫。客戶端可能是C#或傳統的VB6代碼(因此支持COM)。在運行時我們不知道客戶端是VB6還是.NET。混合客戶端和.NET庫錯誤處理。

問題是如何進行錯誤處理。 .NET客戶端可以處理異常,但VB6使用不同的錯誤處理。我們如何透明地爲這兩種意外情況提供合適的錯誤處理。我們需要VB6「On Error」類型處理才能工作,我們需要.NET try catch來工作。請注意,我們並不總是能夠控制客戶端代碼。

我們是否將所有引發的異常轉換爲COM異常?感謝您的幫助。

+0

COM不支持異常,僅支持錯誤代碼。客戶端對運行時COM的支持通常會將這些錯誤代碼轉換爲異常,.NET和VB6當然會這樣做。很難看到你的問題,你嘗試過嗎? – 2015-02-05 20:22:12

回答

0

我的建議是在.NET庫只是扔任何錯誤,讓消費代碼處理:

Try 
    code ... 
Catch 
    Throw 
End Try 

如果COM抓住扔應該解釋它和同樣適用於.NET ...