我正在为Solidworks EPDM(example from API help)创建一个加载项。这是一个类库(.dll)项目,它被添加到EPDM中,并允许将一些自定义函数添加到程序中。
我想为未处理的错误添加日志记录,以便当我的加载项(而不是Solidworks EPDM程序本身)引起异常时,我会收到通知并尝试修复它。
我对这一切都很陌生(而且所有这一切我的意思是VB.NET作为一种语言,编程除了VBA中的宏,结构化异常处理,错误记录等),我正在尝试按照MSDN How To: Log Exceptions in Visual Basic进行操作,但是记录无法处理的异常的说明似乎不适用于类库项目。
具体来说,我不知道如何通过第3步:
记录未处理的例外
1.在解决方案资源管理器中选择一个项目。在项目菜单上,选择属性 2.单击应用程序选项卡 3.单击查看应用程序事件按钮以打开代码编辑器 这将打开ApplicationEvents.vb文件。
View Application Events
按钮对于类库项目是灰色的。
那么,是否有另一种方法可以在类库项目中为未处理的异常添加日志记录?或者,另一种访问类库对象的ApplicationEvents.vb
文件的方法?我已尝试搜索其中任何一个,并且尚未找到允许我记录未处理的异常的解决方案。
答案 0 :(得分:2)
这是一个非常基本的示例,但在IEdmAddIn5
定义的唯一两个接口方法(主机“回调”)中使用Try / Catch包装代码,以及您的加载项类必须实现的方法。
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主机崩溃。