Использование NDDE в VB.net Как правильно перехватывать сообщения об ошибках? - PullRequest
0 голосов
/ 21 сентября 2018

Я использую 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 Ответ

0 голосов
/ 21 сентября 2018

Вы можете попытаться объявить функцию для обработки необработанных ошибок, как показано ниже:

Первый : создайте свою собственную функцию для обработки ошибки

    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 Don 'не забудьте удалить обработчик!

Примечания

Это будет перехватывать все исключения, которые не обрабатываются кодом.Это должно поймать вашу ошибку!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...