我正在使用以下代码在应用程序中使用NDDE
Public WithEvents DXViewDDE As New NDde.Client.DdeClient("DXView", "DDEServer", DDEClient)
Case DXViewServer
If Not DXViewDDE.IsConnected Then
Try
DXViewDDE.Connect() 'Here it throws an unhandled error
AddHandler DXViewDDE.Disconnected, AddressOf DXViewDDEOnDisconnected
DXViewDDE.StartAdvise("SpotPrefix", 1, True, 60000)
DXViewDDE.StartAdvise("DDECommand", 1, True, 60000)
DDEClient.SpotPrefix.Text = DXViewDDE.Request("SpotPrefix", 60000)
DDEClient.DDELookup.Text = DXViewDDE.Request("DDECommand", 60000)
SetServerConnected(theServer, DXViewDDE.IsConnected)
Catch
SetServerConnected(theServer, False)
End Try
End If
如果运行该例程的服务器正确连接并继续运行,但是如果服务器脱机,则会出现以下错误 !(http:www.n2amg.com/DDEError.jpg)
2个问题..为什么“尝试/捕获”不起作用?以及服务器不在线时如何编程以捕获此错误,以便在此之后可以继续运行其余例程?
预先感谢 里克
答案 0 :(得分:1)
您可以尝试声明一个函数来处理未处理的错误,如下所示:
第一 :创建自己的函数来处理错误
Private Sub UnExHandler(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs)
'Do your stuff
End Sub
第二步: 在代码上添加处理程序:
Public WithEvents DXViewDDE As New NDde.Client.DdeClient("DXView", "DDEServer", DDEClient)
AddHandler currentDomain.UnhandledException, AddressOf UnExHandler
'Your things
RemoveHandler currentDomain.UnhandledException, AddressOf UnExHandler
N.B。 。不要忘记删除处理程序!
备注
这将捕获代码未处理的每个异常。它必须抓住您的错误!