Как мне обработать ошибку (возникшую в методе класса) вне класса в VB6? - PullRequest
1 голос
/ 25 февраля 2010

Я хотел бы создать объект класса VB6 и вызвать метод для этого объекта. Если ошибка возникает в

этот метод, я хотел бы иметь возможность вызвать ошибку в методе и перехватить ее вне класса, в

рутина, которую я назвал методом.

Класс, например, может содержать:

Const cmlngMYERROR As Long = vbObjectError + 1001

Public Sub MyMethod()

    ...

    Err.Raise cmlngMYERROR, Err.Source, Err.Description

End Sub

Процедура вызова может содержать:

Private Sub MyCallingRoutine()

    Dim objMyObject As ClassName

On Error GoTo ErrorHandler

    Set objMyObject = New ClassName

    objMyObject.MyMethod

    Exit Sub

ErrorHandler:
    If Err.Number=clngMYERROR Then
        ...
    End If

End Sub

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

проверить номер ошибки, используя заданную константу в обработчике ошибок вызывающих подпрограмм. Какой самый лучший

практиковаться в проверке кода ошибки в вызывающей подпрограмме? Я правильно использую обработку ошибок в этом

пример (или по крайней мере на правильном пути)?

Заранее спасибо.

1 Ответ

3 голосов
/ 25 февраля 2010

Есть умный (уродливый?) Трюк для эмуляции публичной константы: вместо этого используйте публичный Enum

Public Enum PseudoConst
  cmlngMYERROR = vbObjectError + 1001     
End Enum
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...