| Aunque he seguido un proceso de depuración y
comprobación bastante exhaustivo, antes de utilizar el AddIn es recomendable hacer una
copia de seguridad del proyecto. Este AddIn es gratuito, pero no me
hago responsable de su utilización o mal funcionamiento. Su manejo es sencillo. Desde la barra de menús del entorno de
Visual Basic pulsamos en Complementos / Administrador de complementos y
allí cargamos el complemento (add-in) llamado "ProcErr Oliware".
Una vez cargado el Add-In se nos mostrará su formulario
principal en el que aparecen dos listas, una con los módulos del
proyecto y otra con los procedimientos de ese módulo. Al seleccionar un
módulo (ya sea de formulario, normal o de clase) se nos mostrará en la lista de
la derecha todos los procedimientos de ese módulo (excepto procedimientos
Property Set, Get y Let)., indicando si ya tienen un
manipulador de errores o no (para ello mira si en el procedimiento hay alguna
sentencia On Error)
Haciendo doble clic en cualquier procedimiento
se nos abrirá otra ventana con fondo amarillo y con el código fuente correspondiente a ese elemento. Además
se nos mostrará el módulo seleccionado en la propia IDE de Visual Basic. También
se nos abrirá esta ventana pulsando en la barra de menús Utilidades/Ver Código.
Pulsando desde esta ventana en el botón Dependencias se nos
mostrará una relación de todos los procedimientos que llaman a un método con el
mismo nombre que el mostrado (es posible que llamen a otro distinto con el mismo
nombre)
Podemos elegir en qué procedimientos se efectuarán las
inserciones de números de línea y del manipulador de errores, seleccionando uno
o más procedimientos en la lista de la derecha y pulsando los botones
Insertar o Quitar. También podemos habilitar el check-box
Todos
los procedimientos con lo que resultarán afectados todos los procedimientos
del módulo seleccionado.
Para insertar o quitar el manipulador de errores,
seleccionamos el botón de opción Manejo de errores y después pulsaremos los
botones Insertar o Quitar, según el caso. De igual modo
insertaremos o quitaremos los números de línea y las sentencias On Error
Resume Next. Si ya existe algúna sentencia On Error en un
procedimiento no se añadirá ningún manejador de errores desde el complemento.
Pulsando en la barra de menús Utilidades/Referencias nos
aparecerá una ventana con el nombre del proyecto y todas sus referencias en un ListBox. Pulsando una referencia se nos mostrará su versión, la ubicación del
archivo o dll y su Guid.
Desde la barra de menús Utilidades / Controles podremos
visualizar para cada formulario que seleccionemos todos sus controles
junto a cada una de sus propiedades. Esta información podremos copiarla
y pegarla en el portapapeles.
Podemos configurar el modo de comportamiento del manipulador de
errores pulsando Configurar en la barra de menús.
El manejo de errores del Add-In ProcErr está realizado con el
propio Add-In y configurado para mostrar un MsgBox y mandarme un email cada vez
que ocurra un error al utilizarlo, por lo que, en caso de que ocurra, ruego a
quien lo esté usando permita el envío del email. Igualmente se agradecerá
cualquier sugerencia relativa a la mejora del complemento o notificación de bugs.
Funcionamiento del manipulador de errores:
Podemos introducir números de línea y dos tipos de manipuladores:
- Resume Next. Introduce una simple línea On Error Resume
Next al principio del procedimiento indicado. No necesita la clase
clsErrores ni el módulo InfoSistema.bas, y por tanto no registra el error
cometido ni lo manipula.
- clsErrores.- Introduce un manipulador basado en la clase
clsErrores, el cual, después de registrar el error producido según la
configuración, hará una de las tres acciones elegidas: Salir del
procedimiento, ResumeNext ó Err.Raise.
La primera vez que es insertado este manipulador en el proyecto,
se añadirán 2 módulos al proyecto: la clase clsErrores.cls, que es el
manejador principal de errores, y el módulo InfoSistema.bas, que recolecta
información acerca del ordenador del usuario final donde se produzca el error.
Si ya existe algúna sentencia On
Error en un procedimiento no se añadirá ningún manejador de errores desde el
complemento.
El manipulador basado en la clase clsErrores, se encarga de
crear un registro de la pila de llamadas y puede almacenar en el archivo
Errores.log (creado en el directorio del ejecutable) todos los
errores ocurridos en el ordenador. Además es posible configurar la clase para
que se envíe un email a la dirección indicada con información sobre los errores
ocurridos y la configuración del sistema del usuario. También se puede elegir
presentar o no un MsgBox con información sobre el error. Esta información podrá
contener números de línea siempre y cuando éstos se hayan insertado antes.
Configuración
Pulsando en Utilidades/Configuración nos aparecerá un
formulario con las siguientes opciones:
Mandar EMail OnError: Si se habilita el check-box, cada vez que ocurra un
error en el ordenador del usuario se enviará un email a la dirección que se haya
especificado en el text box etiquetado como Dirección de correo de destino.
Todo código presente en un manipulador de errores está en una situación algo
crítica como resultado del propio error, por lo que no es muy conveniente
encomendarle demasiado trabajo. Es por esta razón por lo que no aconsejo esta
opción a no ser en proyectos determinados, tales como versiones beta, etc.
MsgBox OnError.- Aquí podremos decidir no presentar ningún MsgBox en caso
de error, presentar un MsgBox normal con el nº de error, el nº de línea, la
descripción del error y el nombre del módulo donde se ha producido. Si selecciona
Personalizado podrá elegir qué texto quiere que aparezca en el MsgBox.
LogOnError.- Esta opción indica si grabar la información de los errores en
el archivo de texto creado en la misma carpeta donde reside el ejecutable (si no
ha sido modificada la propiedad Destination de la clase por el programador)
Los cambios hechos en la configuración de la clase se
reflejarán al inicializarse la clase por lo que se aplicarán a todos los
manipuladores añadidos con el complemento.
Personalización
El manipulador de errores al ocurrir un error se limita, según esté
configurado, a registrarlo en el archivo Errores.log a presentar un MsgBox
con los datos del error y a enviarnos un email. Después sale del procedimiento,
por lo que equivale a un Exit Sub. Si queremos para un procedimiento particular
efectuar alguna otra acción (alguna acción dependiendo del nº de error, Resume
Next, etc) , tendremos que insertar el código manualmente después de la
etiqueta lblError y la llamada al método glbErr.ManejoError.
|