Использование 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 Не забудьте удалить обработчик!

замечания

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

Другие вопросы по тегам