Использование NDDE в VB.net Как правильно перехватывать сообщения об ошибках?
Я использую 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 вопроса.. Почему Try/Catch не подхватывает это?? и как я могу запрограммировать, чтобы перехватить эту ошибку, если сервер не подключен к сети, так что он может продолжать выполнять остальные процедуры после этого??
Заранее спасибо Рик
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
NB Не забудьте удалить обработчик!
замечания
Это перехватит каждое исключение, которое не обрабатывается кодом. Это должно поймать вашу ошибку!