2010-01-13 27 views
5

Deseo registrar las excepciones ocurridas durante la ejecución de mi aplicación. Antes de esto lo manejé con el cuadro de mensaje. Soy nuevo en VB 6.VB6: cómo crear un archivo de registro en VB6 al iniciar la aplicación

Proporcione algunos ejemplos de código para crear un archivo de registro y guardar mensajes de excepción.

Gracias ..

+0

http://articles.techrepublic.com.com/5100-10878_11-5798663.html Eso parece ser más o menos lo que quieres – johnnyArt

+0

Gracias MarkJ. :) – Royson

Respuesta

6

Usted necesita controladores de errores, utilizando On Error Goto, para que pueda ejecutar su propio código cuando se produce un error. (Por cierto en VB6 se llaman errores no excepciones.) La herramienta gratuita MZTools es excelente - puede insertar automáticamente el On Error Goto y un controlador de errores que incluye el nombre de la rutina actual.

También necesita una rutina general que registre los detalles de error en un archivo, un poco como este a continuación. Advertencia de salud: acabo de tipear esto directamente sin probarlo (air code).

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 

Sugerencia de bonificación: roll your own stack trace.
Bono sugerencia 2: apagar los controladores de errores en el IDE con algo como esto If Not IsInIDE() Then On Error Goto Handler, utilizando la función de IsInIDEhere