VB6-как создать файл журнала в VB6 при запуске приложения

Я хочу зарегистрироваться, исключения произошли во время выполнения моего приложения. Перед этим я обработал его с окном сообщения. Я плохо знаком с VB 6.

Предоставьте некоторый код кода, чтобы создать файл журнала и сохранить сообщения об исключениях.

Спасибо..

5
задан MarkJ 13 January 2010 в 13:22
поделиться

1 ответ

Вам нужны обработчики ошибок, используя по ошибке GOTO , чтобы вы могли выполнить свой собственный код при возникновении ошибки. (BTW в VB6 они называются ошибками Исключения .) Бесплатный инструмент MZTools отлично - он может автоматически вставить на ошибку GOTO и обработчик ошибок, который включает в себя имя текущей рутины.

Вам также нужна общая процедура, которая регистрирует данные об ошибках в файл, немного похоже на это ниже. Предупреждение о здоровье - я только что набрал это прямо без тестирования ( воздушного кода ).

Sub MySub()
  On Error Goto ErrHandler
  '... Do something ...'
  On Error Goto 0
  Exit Sub

ErrHandler:
  Call LogError("MySub", Err, Error$) ' passes name of current routine '
End Sub 

' General routine for logging errors '
Sub LogError(ProcName$, ErrNum&, ErrorMsg$)
  On Error Goto ErrHandler
  Dim nUnit As Integer
  nUnit = FreeFile
  ' This assumes write access to the directory containing the program '
  ' You will need to choose another directory if this is not possible '
  Open App.Path & App.ExeName & ".log" For Append As nUnit
  Print #nUnit, "Error in " & ProcName
  Print #nUnit, "  " & ErrNum & ", " & ErrorMsg
  Print #nUnit, "  " & Format$(Now)
  Print #nUnit
  Close nUnit
  Exit Sub

ErrHandler:
  'Failed to write log for some reason.'
  'Show MsgBox so error does not go unreported '
  MsgBox "Error in " & ProcName & vbNewLine & _
    ErrNum & ", " & ErrorMsg
End Sub

Бонусное предложение: Сверните свой собственный трассировку стека .
Бонусное предложение 2: отключите обработчики ошибок в IDE с чем-то вроде этого , если не ISInide (), то по ошибке GOTO Handler , используя функцию ISInide из здесь

8
ответ дан 14 December 2019 в 04:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: