如何在 vb.net class 库项目中记录未处理的异常?
How to log unhandled exceptions in a vb.net class library project?
我正在为 Solidworks EPDM (example from API help) 创建插件。这是一个添加到 EPDM 的 class 库 (.dll) 项目,允许将一些自定义功能添加到程序中。
我想为未处理的错误添加日志记录,以便当我的加载项(而不是 Solidworks EPDM 程序本身)导致异常时,我可以收到通知并尝试修复它。
我对所有这些都很陌生(所有这些我的意思是 VB.NET 作为一种语言,在 VBA 中对除宏之外的任何东西进行编程,结构化异常处理,错误记录,等)并且我正在尝试遵循 MSDN How To: Log Exceptions in Visual Basic 但记录未处理异常的说明似乎不适用于 class 库项目。
具体来说,我不知道如何通过第 3 步:
To log an unhandled exception
1. Have a project selected in Solution Explorer. On the Project menu, choose Properties.
2. Click the Application tab.
3. Click the View Application Events button to open the Code Editor.
This opens the ApplicationEvents.vb file.
View Application Events
按钮对于 class 个库项目是灰色的。
那么,是否有另一种方法可以为 class 库项目中未处理的异常添加日志记录?或者,另一种访问 class 库对象的 ApplicationEvents.vb
文件的方法?我已经尝试搜索其中任何一个,但尚未找到允许我记录 unhandled 异常的解决方案。
这是一个非常基本的示例,但在 IEdmAddIn5
定义的仅有的两个接口方法(主机 "callbacks")中使用 Try/Catch 包装您的代码,您的加载项 class 必须实施。
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 主机崩溃。
我正在为 Solidworks EPDM (example from API help) 创建插件。这是一个添加到 EPDM 的 class 库 (.dll) 项目,允许将一些自定义功能添加到程序中。
我想为未处理的错误添加日志记录,以便当我的加载项(而不是 Solidworks EPDM 程序本身)导致异常时,我可以收到通知并尝试修复它。
我对所有这些都很陌生(所有这些我的意思是 VB.NET 作为一种语言,在 VBA 中对除宏之外的任何东西进行编程,结构化异常处理,错误记录,等)并且我正在尝试遵循 MSDN How To: Log Exceptions in Visual Basic 但记录未处理异常的说明似乎不适用于 class 库项目。
具体来说,我不知道如何通过第 3 步:
To log an unhandled exception
1. Have a project selected in Solution Explorer. On the Project menu, choose Properties.
2. Click the Application tab.
3. Click the View Application Events button to open the Code Editor.
This opens the ApplicationEvents.vb file.
View Application Events
按钮对于 class 个库项目是灰色的。
那么,是否有另一种方法可以为 class 库项目中未处理的异常添加日志记录?或者,另一种访问 class 库对象的 ApplicationEvents.vb
文件的方法?我已经尝试搜索其中任何一个,但尚未找到允许我记录 unhandled 异常的解决方案。
这是一个非常基本的示例,但在 IEdmAddIn5
定义的仅有的两个接口方法(主机 "callbacks")中使用 Try/Catch 包装您的代码,您的加载项 class 必须实施。
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 主机崩溃。