【问题标题】:Passing C# Exception message to VB Application将 C# 异常消息传递给 VB 应用程序
【发布时间】:2012-07-24 10:30:17
【问题描述】:

我有 COMVisible 的 C# 组件。 我使用 regasm 注册了它。

此组件正在另一个 VB 应用程序中使用。 这个 VB 应用程序正在处理这样的错误:

On Error GoTo MyErrorHandler
...some code here..

MyErrorHandler
If Err.Number <> 0 Then
    Err.Raise Err.Number, , "Failure In COM Object" & Chr(13) & Chr(10) & Err.Description
End If

我想将 C# 异常消息的值传递给 Err.Description。

我如何做到这一点?

【问题讨论】:

  • 它只是一个String 你试过什么?
  • 我只想传递 C# 应用程序的 Exception 对象中捕获的 Message 值。
  • 您是否在 C# 中引发了 COMException?
  • 异常消息已作为错误描述传递。然而,错误数量将达到数百万(默认情况下)
  • @JamesKyburz 不,我没有使用 COMException。 .NET 组件设置为抛出其代码库中发生的任何异常。

标签: c# com exception-handling vb6


【解决方案1】:

我没有看到您从 COM 对象传递错误消息。您是否能够从您的 COM 对象中检索错误消息?如果是,您只需将其添加到Err.Raise 以代替Err.Description。如果你不能找回,那是一条完全不同的鱼。请详细说明。

Err.Raise Err.Number, , "Failure In COM Object" & Chr(13) & Chr(10) & objYourComObject.Description

【讨论】:

  • 这就是 OP 试图做的,获取 C# 对象引发的异常的完整消息。这个(或它的一些表示)将保存在Err 对象中。使用单独的属性只会让 IMO 变得一团糟 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多