• Domingo 19 de Mayo de 2024, 08:41

Autor Tema:  Ayuda Con Error Handler  (Leído 1054 veces)

Fernando_P

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Ayuda Con Error Handler
« en: Domingo 16 de Mayo de 2004, 09:04 »
0
Quien me explica como se trabaja con esta utilidad. Para que sirve. Como se utilizan.
Cual es su logica?

desde ya muchas gracias.
Saludos

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Ayuda Con Error Handler
« Respuesta #1 en: Lunes 17 de Mayo de 2004, 10:46 »
0
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.
Código: Text
  1.  
  2. Private Sub HacerCosas()
  3.  
  4.    On Error Resume Next
  5.    Kill "C:\Ruta\Fichero.ext"  'De esta forma si no exitese
  6.                                          'el archivo el pgm no casca
  7.                                          'y continua.
  8.  
  9.    Dim intCanal As Integer  
  10.  
  11.    On Error Goto Err_1
  12.    intCanal = Freefile
  13.    Open "C:\Ruta\UnArchivo" For Input As intCanal
  14.    .
  15.    .
  16.    .
  17.    Close intCanal
  18.  
  19.    On Error Goto Err_2
  20.    intCanal = Freefile
  21.    Open "C:\Ruta\OtroArchivo" For Input As intCanal
  22.    .
  23.    .
  24.    .
  25.  
  26. Exit_HacerCosas:
  27.    On Error Resume Next   'Si no pongo esto aquí y el canal
  28.                                       'no estuviese abierto se producirá
  29.                                       'un error que provocará un embu-
  30.                                       'clamiento al volver a esta etiqueta
  31.    Close intCanal
  32.  
  33.    Exit Sub             'Para no entrar en el código de control de
  34.                             'errores y se produzca un 'Resume sin error.
  35.  
  36. Err_1:
  37.     MsgBox "Fallo con el archivo 1"
  38.     Resume Exit_HacerCosas:
  39.  
  40. Err_2:
  41.     MsgBox "Fallo con el archivo 1"
  42.     Resume Exit_HacerCosas:
  43.  
  44. End Sub
  45.  
  46.  

Espero que esto sea lo que necesitas, porque después de tanta escritura ya tengo peladas las yemas de los dedos.

Abur.