Hola Fernando P.
Supongo que te refieres al manejo y supervisión de errores... Así por encima, ten en cuenta estas cosas:
En un método, mediante la instrucción
On Error ... indicarás cúal es la opción a tomar en caso de que se produzca un error y con
Resume ... estableces el punto donde continuará la ejecución del código.
Mediante el objeto
Err puedes obtener información del error que se ha producido.
La primera de las instrucciones (On Error) seguida de una instrucción
GOTO etiqueta indica que en caso de producirse un error la ejecución del código continuará en la etiqueta (o número de línea) indicada. Es en esta etiqueta donde introduces el código necesario según el tratamiento que le quieres dar al error. Mediante las propiedades del objeto Err
Number y
Description conocerás el número de error producido y el texto del mismo.
Cada vez que utilizas On Error, indicas la forma de controlar los errores.
Con Resume, una vez que has identificado el error y actuado en consecuencia, puedes que hacer que el flujo del programa se dirija a donde tú quieras: utilizando
Resume Next haces que la ejecución continúe en la siguiente instrucción; utilizando
Resume Etiqueta, haces que la ejecución continúe en la etiqueta especificada.
Normalmente Cada Error necesita un Resume antes de que pueda producirse el siguiente, y no puede haber un Resume sin Error, sin embargo es posible no utilizar Resume si el tratamiento del error está al final del método, es decir antes de End Sub o End Function.
Se puede utilizar la instrucción On Error de la forma
On Error Resume Next, que en la práctica no detendrá la ejecución del código y continuará con la siguiente instrucción. Deberás ser cuidadoso, pues esto puede producir resultados inesperados en la ejecución del programa, o puede causar que entre en algún bucle del que no puede salir provocando que el programa se cuelgue.
Analiza el ejemplo.
Private Sub HacerCosas()
On Error Resume Next
Kill "C:\Ruta\Fichero.ext" 'De esta forma si no exitese
'el archivo el pgm no casca
'y continua.
Dim intCanal As Integer
On Error Goto Err_1
intCanal = Freefile
Open "C:\Ruta\UnArchivo" For Input As intCanal
.
.
.
Close intCanal
On Error Goto Err_2
intCanal = Freefile
Open "C:\Ruta\OtroArchivo" For Input As intCanal
.
.
.
Exit_HacerCosas:
On Error Resume Next 'Si no pongo esto aquí y el canal
'no estuviese abierto se producirá
'un error que provocará un embu-
'clamiento al volver a esta etiqueta
Close intCanal
Exit Sub 'Para no entrar en el código de control de
'errores y se produzca un 'Resume sin error.
Err_1:
MsgBox "Fallo con el archivo 1"
Resume Exit_HacerCosas:
Err_2:
MsgBox "Fallo con el archivo 1"
Resume Exit_HacerCosas:
End Sub
Espero que esto sea lo que necesitas, porque después de tanta escritura ya tengo peladas las yemas de los dedos.
Abur.