【问题标题】:Mixed client and .NET library error handling.混合客户端和 .NET 库错误处理。
【发布时间】:2015-04-05 20:05:56
【问题描述】:

我们有一个公开 COM 的 .NET 库。客户端可能是 C# 或旧版 VB6 代码(因此支持 COM)。在运行时我们不知道客户端是 VB6 还是 .NET。

问题是如何进行错误处理。 .NET 客户端可以处理异常,但 VB6 使用不同的错误处理。我们如何才能透明地为这两种意外情况提供合适的错误处理。我们需要 VB6 “On Error” 类型处理才能工作,我们需要 .NET try catch 才能工作。请注意,我们并不总是能够控制客户端代码。

我们是否将所有引发的异常转换为 COM 异常?感谢您的帮助。

【问题讨论】:

  • COM 不支持异常,只支持错误代码。客户端中对 COM 的运行时支持通常会将这些错误代码转换为异常,.NET 和 VB6 肯定会这样做。很难看出你的问题,你试过了吗?

标签: .net exception vb6 interop error-reporting


【解决方案1】:

我的建议是在您的 .NET 库中抛出任何错误并让使用代码处理它:

Try
   code ...
Catch
   Throw
End Try

如果 COM 捕获到抛出,它应该解释它,对于 .NET 也是如此......

【讨论】:

    猜你喜欢
    • 2011-02-19
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    相关资源
    最近更新 更多