El Objeto Err.


Este objeto representa los errores y tiene sus propiedades, métodos y funciones.
La función Raise genera errores en tiempo de ejecución, su forma general es la siguiente:

Raise(numero as Long, origen as String, descripción as String)

Donde numero es el número del error; origen es opcional e indica el objeto o aplicación que generó el error; descripción es una cadena de caracteres con la descripción acerca del error producido.

Ejemplo 1

Crea un nuevo proyecto estándar y coloca en el formulario los siguientes controles:

Control Propiedad Valor
TextBox Name txtNum
" " Text 0
CommandButton Name cmdError
ListBox Name lstAdd

Escribe el siguiente código en el formulario:

Private Sub cmdError_Click()
If isnumeric(txtNum.Text)=True ThenlstAdd.Additem txtNum.Text
Else:Err.Raise 77,"txtIntro","La expresión no es numérica"
End If
End Sub


La propiedad Number del objeto Err es la propiedad más importante y hace referencia al número del error.
La propiedad Description es una cadena de texto que describe el error producido.
La propiedad Source indica en qué lugar se produjo el error.
La propiedad HelpFile es la ruta de acceso a un archivo de ayuda en el caso de producirse un error.
El método Clear limpia todos los errores, o sea deja Err=0.

Si un error se produce, Visual Basic emite un mensaje con el número y la descripción del error y allí finaliza la ejecución, perdiendo todo el trabajo realizado (si no se ha guardado). Para evitar estas situaciones hay ciertas instrucciones para controlar los errores:

- On Error GoTo etiqueta
- On Error Resume Next


La primer instrucción activa una rutina que comienza en la etiqueta línea. Si se establece en el código lo siguiente:

On Error GoTo Unerror
sentencias
Unerror:
sentencias


Se ejecutarán las sentencias a continuación de Unerror en caso de producirse un error.

La segunda instrucción hace que la ejecución del programa continúe después de la línea que produjo el error. Si se establece en el código lo siguiente:

On Error Resume Next
sentencia1
sentencia2
sentencia3
sentencia4


Si el error sucede en la sentencia 1, se pasará la ejecución a la sentencia2, si se produce un error en la sentencia2 se pasará la ejecución a la sentencia3, y así sucesivamente.

Ejemplo 2

Crea un nuevo proyecto estándar y coloca en el formulario los siguientes controles:

Control Propiedad Valor
TextBox Name txtDato
" " Text
Frame Caption Operaciones
Option Name optOper
" " Index 0, 1, 2
" " Caption División 500/x - variable as Byte - Raíz cuadrada
CommandButton Name cmdCerr
" " Caption Con control
CommandButton Name cmdSerr
" " Caption Sin control

Escribe el siguiente código en la ventana de código del formulario

Private Sub Form_Load()
optOper(0).Value=True
End Sub


Private Sub cmdSerr_Click()
Dim var as Integer
If
optProc(0).Value=True ThentxtDato.Text=500/txtDato.Text
Else
If
optOper(1).Value=True Then
txtDato.Text=Sqr(txtDato.Text)
Else:var=txtDato.Text
End If
End If
End Sub


Pulse F5 para probar la aplicación. Trata de introducir errores, como la división entre 0, la raíz cuadrada de números negativos y guardar en la variable de tipo Byte valores no aptos.
A continuación una tabla con algunos de los valores de error:

Tabla 11 - Algunos valores de error
Número Descripción Motivo
11 División por cero
13 No coinciden los tipos Asingar un valor de caracteres a una variable numérica
6 Desbordamiento Asignar a una variable numérica un valor que no puede almacenar
5 Argumento o llamada a procedimiento no válida Utilización de argumentos no válidos
9 Subíndice fuera del intervalo Asignar un índice mayor al índice de un array
53 Archivo no encontrado Abrir un archivo que no existe
54 Modo de archivo incorrecto Ocurre cuando se intenta utilizar un método de lectura o escritura incompatible con el método open utilizado
55 El archivo ya está abierto Se intenta abrir un archivo ya abierto
3170 No se encontró el ISAM instalable Intenta acceder a una base de datos sin el ISAM instalable

No hay comentarios:

Publicar un comentario