1

我正在为 Solidworks EPDM 创建一个插件(来自 API 帮助的示例)。这是一个添加到 EPDM 的类库 (.dll) 项目,并允许将一些自定义功能添加到程序中。

我想为未处理的错误添加日志记录,以便当我的插件(而不是 Solidworks EPDM 程序本身)引起异常时,我可以收到通知并尝试修复它。

我对这一切都很陌生(所有这些我的意思是 VB.NET 作为一种语言,在 VBA 中编程除宏之外的任何东西,结构化异常处理,错误日志等),我正在尝试遵循MSDN How To:在 Visual Basic 中记录异常,但记录未处理异常的说明似乎不适用于类库项目。

具体来说,我不知道如何通过第 3 步:

记录未处理的异常
1. 在解决方案资源管理器中选择一个项目。在项目菜单上,选择属性
2. 单击应用程序选项卡。
3. 单击查看应用程序事件按钮打开代码编辑器。
这将打开 ApplicationEvents.vb 文件。

View Application Events对于类库项目, 该按钮是灰色的。

在此处输入图像描述

那么,是否有另一种方法可以为类库项目中的未处理异常添加日志记录?或者,另一种访问ApplicationEvents.vb类库对象文件的方法?我已经尝试过搜索,但还没有找到允许我记录未处理异常的解决方案。

4

1 回答 1

2

这是一个非常基本的示例,但使用 Try/Catch 将您的代码包装在仅有的两个接口方法(宿主“回调”)中,该方法IEdmAddIn5定义了您的外接程序类必须实现的方法。

Public Sub GetAddInInfo(ByRef poInfo As EdmAddInInfo, ByVal poVault As IEdmVault5, ByVal poCmdMgr As IEdmCmdMgr5) Implements IEdmAddIn5.GetAddInInfo
    Try
       ...
    Catch ex As Exception
       ' Handle exception...
    End Try
End Sub

Public Sub OnCmd(ByRef poCmd As EdmCmd, ByRef ppoData As System.Array) Implements IEdmAddIn5.OnCmd
    Try
       ...
    Catch ex As Exception
       ' Handle exception...
    End Try
End Sub

我通常会同意@Hans Passant 关于重新抛出异常的看法,但我通常发现这对 EPDM 加载项有问题,因为它可能导致 COM 主机崩溃。

于 2015-07-31T03:10:29.297 回答