PDF de programación - control de Errores en Visual Basic .NET

Imágen de pdf control de Errores en Visual Basic .NET

control de Errores en Visual Basic .NETgráfica de visualizaciones

Publicado el 14 de Enero del 2017
2.506 visualizaciones desde el 14 de Enero del 2017
157,4 KB
17 paginas
Creado hace 11a (15/06/2012)
http://www.microsoft.com/spanish/msdn/articulos/archivo/260402/voices/errhandlvbnet.asp
Control de errores en Visual Basic .NET

Actualización a Microsoft .NET
Ken Getz MCW Technologies

Febrero de 2002

Resumen: en este artículo se describen las diferencias entre el sistema de control de errores de Visual
Basic .NET y el utilizado en Visual Basic 6.0. Entre los temas principales que se tratan en este
documento se incluyen los bloques Try/Catch, los objetos Exception, los llamadores de
procedimientos y la creación de clases de excepciones propias. (17 páginas impresas.)

Objetivos

 Comparar el sistema de control de errores de Microsoft® Visual Basic® .NET con el de Visual

Basic 6.0

 Aprender a utilizar los bloques Try/Catch para controlar los errores en tiempo de ejecución
 Utilizar los objetos Exception para determinar el tipo de error producido
 Devolver excepciones a los llamadores de procedimiento
 Crear clases Exception propias

Contenido
Introducción al control de excepciones estructurado Adición de características de control de errores
Uso de excepciones específicas Generación de errores Ejecución incondicional de código Creación de
clases Exception Resumen Acerca del autor Acerca de Informant Communications Group

Introducción al control de excepciones estructurado
.NET Framework proporciona en Visual Basic .NET un sistema de control de excepciones estructurado
basado en el uso de las palabras clave Try, Catch, Finally y Throw. Este tipo de control de errores ya
está disponible en C++ desde hace varios años. No obstante, desde la aparición de .NET Common
Language Runtime, este sistema se puede encontrar en todos los lenguajes .NET, incluido Visual Basic
.NET.

Antes del control de excepciones estructurado
Aunque Visual Basic dispone de su propio mecanismo de control de errores desde que el término
"Visual" se agregó al nombre del producto, las técnicas ofrecidas a los programadores de este lenguaje
presentaban demasiadas lagunas. Existen varios aspectos en torno al sistema de control de errores de
Visual Basic (consulte la lista 1) que han sido motivo continuo de queja entre los programadores, tanto
con experiencia como sin ella:

 En Visual Basic 6.0 es necesario realizar saltos dentro de los procedimientos para llevar a cabo

el control de errores. Las instrucciones On Error Goto, Resume y Resume Next implican
saltos en el código, tanto hacia adelante como hacia atrás. Las técnicas estándar de control de
errores de Visual Basic 6.0 implican, al menos, un salto dentro del procedimiento y, a menudo,
varios (uno hacia adelante, hacia el bloque de control de errores, y otro hacia atrás, hacia el
punto de salida de un procedimiento común).

 De acuerdo con las instrucciones de programación de Visual Basic 6.0, en las que se

recomienda, por ejemplo, que se garantice que los procedimientos dispongan de un único punto
de salida, el lugar más adecuado para dicho punto es en mitad del procedimiento (antes del
bloque de control de errores). Esto conlleva que, a menudo, se olviden las importantes
instrucciones Exit Sub o Exit Function.

 En Visual Basic 6.0 no hay forma de insertar y extraer controladores de errores. Para conservar

la interceptación del error actual, debe configurar un controlador diferente y, a continuación,
volver al primero. No olvide incluir la instrucción On Error Goto… adecuada cada vez que
cambie de controlador.

 Visual Basic 6.0 incluye un único objeto Err, por lo que, si se produce un error y no lo controla

inmediatamente, puede perder permanentemente la información relativa al mismo.

 En la documentación de Visual Basic 6.0 apenas se incluye información sobre los tipos de

errores (es decir, el número de errores) que se pueden generar como consecuencia de la
realización de una acción determinada en el código. La única alternativa es intentar generar la
mayor cantidad de números de error desencadenando dichos errores e interceptar aquéllos que
sean específicos de su código.

Lista 1. El control de errores de Visual Basic 6.0 requiere, al menos, un salto y, a menudo, varios.

Sub TestVB6()
On Error GoTo HandleErrors

' Realizar una acción aquí que
' pueda generar un error.

ExitHere:
' Ejecutar el código de limpieza aquí.
' Omitir los errores en este
' código de limpieza.
On Error Resume Next
' Ejecutar el código de limpieza.
Exit Sub

HandleErrors:
Select Case Err.Number
' Agregar casos para cada
' número de error que se desea interceptar.
Case Else
' Agregar el controlador de errores final.
MsgBox "Error: " & Err.Description
End Select
Resume ExitHere
End Sub

Asimismo, aunque los programadores de Visual Basic disponían del método Err.Raise para devolver
los errores a los procedimientos que realizan la llamada, esta técnica nunca llegó a ser estándar. Gran

parte de los programadores de código llamado por terceros, en lugar de emitir un mensaje sólo en caso
de error, devuelven un valor para indicar que la operación se realizó o no correctamente. Debido a que
se pueden omitir fácilmente los valores de error devueltos de los procedimientos a los que se llama, en
demasiadas ocasiones el código no devuelve el error en tiempo de ejecución adecuado a los llamadores
correspondientes.

Después del control de excepciones estructurado
La incorporación del control de excepciones estructurado facilita a los programadores la
administración de la notificación y generación de errores, así como la determinación de las causas de
los mismos en tiempo de ejecución. Este sistema incluye una serie de características que lo convierten
en un mecanismo de control más flexible que el utilizado en las versiones anteriores de Visual Basic:

 El sistema de control de errores de .NET se basa en la clase Exception, que contiene

información sobre el error actual, así como la lista de errores que lo puede haber
desencadenado.

 Puede heredar de la clase Exception, creando sus propias excepciones con la misma
funcionalidad que la clase base. Asimismo, si es necesario, puede crear funcionalidad
extendida. La creación de su propia clase Exception permite a su código interceptar
excepciones específicas, lo que aporta un alto nivel de flexibilidad.

 Debido a que las clases de .NET Framework inician excepciones al encontrarse con errores en

tiempo de ejecución, los programadores adquieren el hábito de interceptar y controlar las
excepciones. De este modo, aumentan las posibilidades de que se realice con éxito el control de
las excepciones iniciadas desde los componentes.

 Puede anidar los bloques Try/Catch con los bloques Try, Catch o Finally, lo que permite a los

programadores administrar el control de errores en el nivel de granularidad requerido.

En la lista 2 se muestra el diseño de un controlador de excepciones simple en Visual Basic .NET. En
las siguientes secciones se describe en detalle el uso de cada una de las palabras clave incluidas en la
lista 2, así como la utilización de la clase Exception en el seguimiento y generación de errores.

Lista 2. El control de errores en Visual Basic .NET no requiere saltos.

Sub TestVBNET()
Try
' Realizar una acción aquí que
' pueda generar un error.
Catch
' Controlar excepciones que ocurren en
' el bloque Try aquí.
Finally
' Ejecutar el código de limpieza aquí.
End Try
End Sub

Sugerencia Puede utilizar el antiguo mecanismo de control de errores de Visual Basic
6.0 junto con el control de excepciones estructurado de .NET en el mismo proyecto pero
no dentro del mismo procedimiento. On Error y Try no se pueden incluir en el mismo

procedimiento.

Generación de errores
Los siguientes ejemplos comparten la misma premisa: el objetivo es abrir un archivo, recuperar su
longitud y, a continuación, cerrarlo. Todos los ejemplos utilizan el código txtFileName para recuperar
el nombre del archivo de un cuadro de texto del formulario de ejemplo:

Dim lngSize As Long ' La longitud es un número de 64 bits.
Dim s As FileStream

s = File.Open(txtFileName.Text, FileMode.Open)
lngSize = s.Length
s.Close()

Por supuesto, el código puede generar (por varias razones) un error. Por ejemplo, se puede generar una
excepción si:

 El archivo no se encuentra.
 La ruta no existe.
 La unidad en la que se ubica el archivo no está lista (tal vez ha solicitado el tamaño de un

archivo en una unidad de disquete sin medio).

 No dispone de permiso para tener acceso al archivo o a la carpeta solicitados.
 Ha especificado un nombre de archivo no válido.

Esta lista podría seguir de forma indefinida. En los siguientes ejemplos se incluye una serie de
variaciones en el código a fin de mostrar algunas de las características del control de excepciones
estructurado.

Adición de características de control de errores
Los ejemplos que se ofrecen en las siguientes secciones incluyen características de control de errores
cada vez más complejas en el código de error anterior e introducen los conceptos de interceptación e
identificación de excepciones en Visual Basic .NET, partiendo del caso en el que no se ha incluido
ningún código de control de errores.

La aplicación de ejemplo ErrorHandling.sln, incluye un formulario, frmErrors, que permite hacer uso
de todas las técnicas descritas en este artículo (consulte la figura 1). En cada caso, escriba la ruta a un
archivo o unidad que no exista, a una unidad que no contenga ningún medio o a cualquier otra ruta que
pueda desencadenar un error en el sistema de archivos.

Figura 1. Utilice este formulario de ejemplo para probar todas las características aquí descritas.

Caso base: No hay código de control de errores
¿Qué ocurre si no se incluye código de control de errores? En ese caso, los errores que se producen en
tiempo de ejecución vuelven al tiempo de ejecución de .NET. A continuación, aparece el cuadro de
  • Links de descarga
http://lwp-l.com/pdf255

Comentarios de: control de Errores en Visual Basic .NET (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad