我即将开始编写一个将从VB COM +服务调用的.Net组件(新组件是一个DLL,它调用Web服务并根据响应返回)。我不确定如何处理调用VB中.Net代码中可能出现的错误情况。
我担心的两种错误是:
如果发生上述任何一种情况,我想向用户返回一些特定的反馈和/或将一些信息记录到日志中。我想过从.Net代码返回Int返回代码并避免异常,但调用VB代码最终可能会迁移到.Net,所以我想尽可能使用Exceptions。
我在MSDN上读到COM Interop会自动将标准库异常转换为HRESULT;有没有人有这方面的经验?这可以用于将自定义.Net异常转换为我可以在VB中处理的错误条件吗?
谢谢, 尼克
答案 0 :(得分:1)
我确信我之前已经看过它,但这是我以前的工作,所以我无法检查细节。我认为我们从COMException继承了我们的异常类并设置了正确的ErrorCode(应该在非托管代码中将其翻译为HResult)。这非常好,因为您可以在非托管代码中使用HResult,并在托管客户端中正确处理类型异常。
如果确实有效,请告诉我。
答案 1 :(得分:0)
我最终使用以下方法:
这样做的原因是,调整我们的异常树来扩展COMException会比较麻烦(比上面的方法更麻烦)。所以,我从未尝试从COMException继承并检查ErrorCode是否正确转换为HResult。
感谢您的建议,并为不尝试而道歉。