Autor Tema: Crear control de errores  (Leído 3441 veces)

Desconectado xavi

  • Administrador
  • Habitual
  • *****
  • Mensajes: 220
Crear control de errores
« en: Abril 14, 2012, 07:01:45 pm »
Palabras clave: manejador, control, errores, log
Autor: Parece que McPegasus
Extraído de: La web del Búho

Objetivo
Estandarizar el manejo del control de errores.


En un comando cualquiera, de un formulario cualquiera, un dia cualquiera y a una hora cualquiera...

Código: [Seleccionar]
Private Sub CmdFacturar_Click()
On Error GoTo Err_CmdFacturar_Click

    'cuerpo del procedimiento, codigo cualquiera

Exit_CmdFacturar_Click:
    Exit Sub

Err_CmdFacturar_Click:
    'En la siguiente funcion ERRORES, recogemos errores para escribirlas posteriormente en un LOG
    'además de mostrar datos en pantalla al usuario:

     Errores Err.Number, Err.Description & vbCrLf & _
            "Evento: " & Screen.ActiveControl.EventProcPrefix & vbCrLf & _
            "Formulario: " & Me.Name
    Resume Exit_CmdFacturar_Click
   
End Sub

En el resto de la aplicacion solo habrá que copiar y pegar la linea:

Errores Err.Number, Err.Description & vbCrLf & _
            "Evento: " & Screen.ActiveControl.EventProcPrefix & vbCrLf & _
            "Formulario: " & Me.Name

en todos los flujos de errores de todos los eventos de los formularios.Tampoco cuesta tanto...¿No?



Ahora en un módulo BAS,las funciones de apoyo para grabar indicencias y para dar aviso en pantalla al usuario....

Código: [Seleccionar]
Function Errores(NumeroError As Integer, Texto As String)
 
  MsgBox "Atención, mensaje Nº: " & NumeroError & vbCrLf _
         & Texto, vbInformation + vbOKOnly, "Servicio de Mantenimiento"
   
     EscribeDatosTxt ("----------------------------------------------------------")
     EscribeDatosTxt ("Incidencia en el programa:")
     EscribeDatosTxt ("Aviso Nº: " & NumeroError)
     EscribeDatosTxt ("Descripción: " & Texto)
     EscribeDatosTxt ("Fecha de la incidencia:" & Date & " -> Hora : " & Time)
     EscribeDatosTxt ("----------------------------------------------------------")
     ' Fin de control de esta incidencia
 
End Function

Function EscribeDatosTxt(Texto As String)
 Dim NumeroArchivo
 NumeroArchivo = FreeFile
 Open CurrentProject.Path & "\Incidecnias.txt" For Append As #NumeroArchivo
 Print #NumeroArchivo, Texto
 Close #NumeroArchivo
End Function



....asi si abrimos el fichero de incidencias...observaríamos unas lineas grabadas como esta...

----------------------------------------------------------
Incidencia en el programa:
Aviso Nº: 2102
Descripción: El nombre del formulario 'McPegasus :-P' está mal escrito o hace referencia a un formulario que no existe.
Evento: CmdFacturar
Formulario: Facturacion
Fecha de la incidencia:23/10/2003 -> Hora : 10:03:05
----------------------------------------------------------
« Última modificación: Enero 23, 2021, 07:09:17 pm por xavi »