miércoles, 12 de septiembre de 2012


Controlar Errores


Cunado se realiza una aplicación se peuden presentar tres clase de errores:
 * Errores de sintaxis: Vb6  detecta  estos tan pronto como se producen;en el momento de escribir  una sentencia incorrecta.
 * Errores durante la ejecución: Ocurren cuando al ejecutar una aplicación una sentencia intenta una operación que es imposible realizar.Ej. Dividir por 0.
 * Errores lógicos: cuando a pesar de de no haber errores de sintaxis ni durante la ejecución , los resultados obtenidos no son los correctos.
 Interceptar errores
Para ello vamos a introducir la sentencia
On Error Goto línea(es la primera línea de la rutina que manipula el error)
Una vez ejecutada esta sentencia cualquier error producido, en el procedimeinto que la contiene, interceptara el error. Una vez interceptado el  error escribiremos el código necesario para manipularlo. Y devolvemos el control usando alguna de las  siguientes sentencias:
Resume: permite cotinuar la ejecución del programa luego de manipular el error. Y esta sentencia se puede utilizar de varias formas
o   Resume (0) Cuando la ejecución se reanuda en la sentencia que provoco el error.
o   Resume Next Cuando la ejecución se reanuda en la sentencia inmediatamente posterior a la que provoco el error.
o   Resume línea la ejecución se reanuda a partir de la línea especificada.
Si desea simular que ha ocurrido un error ejetecute la sentencia Err.Raise

Private Sub Buscar_Archivo()
Dim Archivo  As String
Dim Msg      As String
Dim Contador As Integer
'Introducir la sentencia de Error
On Error GoTo CodigoError

'Visualizar Archivos
Archivo = Dir(Form1.Nombre.Text)
Do While Archivo
    Form1.List1.AddItem Archivo
    Contador = Contador + 1
    Archivo = Dir
Loop
If Form1.List1.ListCount Then
    Msg = "Se encontraron " & Contador & " Archivos"
Else
    Msg = "No se encontraron Archivos"
End If
MsgBox Msg, vbInformation, Form1.Caption
Form1.Nombre.SetFocus
Exit Sub
CodigoError:
'Errores
Msg = "Ha ocurrido el error " & Err.Number & " no previsto"
Msg = Msg & vbCrLf & Err.Description
MsgBox Msg, vbCritical
Form1.Nombre.SetFocus
Exit Sub
Resume
End Sub

Este procedimiento preve que si ocurre un error no previsto.  Y lo controla
En nuestro proximo encunetro vamos a ver que hacer con el error interpectado.

No hay comentarios:

Publicar un comentario