Tutorial: Control estructurado de excepciones
Actualización: noviembre 2007
Mientras todavía puede emplear la instrucción On Error para controlar las excepciones en su código a fin de proporcionar control no estructurado de excepciones, Visual Basic 2005 admite también control de excepciones estructurado que puede utilizar para crear y mantener los programas con control de errores completo. En el control estructurado de excepciones, los bloques de código prueban circunstancias específicas y reaccionan en consecuencia.
En este tutorial se muestra cómo puede agregar control estructurado de excepciones a un programa. De forma más específica, muestra cómo utilizar la instrucción Try...Catch...Finally para controlar las excepciones y cómo realizar un filtrado de errores dentro de los bloques Catch.
Nota: |
---|
No debe combinar el control de excepciones estructurado con el no estructurado dentro de un mismo procedimiento. |
Nota: |
---|
Los cuadros de diálogo y comandos de menú que verá en Visual Studio pueden variar con respecto a los descritos en la Ayuda en función de su edición o configuración activa. Para cambiar la configuración, elija Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, consulte Valores de configuración de Visual Studio. |
Crear la aplicación
La siguiente aplicación es un formulario de pedidos de clientes de una compañía que vende ositos de peluche. La interfaz de usuario consta de los controles siguientes:
Un TextBox para el nombre del cliente.
Dos controles ComboBox para seleccionar el color y tamaño del osito.
Un Button Pedido.
Tres etiquetas que transmiten la finalidad de cada control al usuario.
Cuando el usuario escribe la información necesaria y hace clic en el botón Pedido, la aplicación muestra un resumen del pedido.
Para crear la aplicación
En el menú Archivo, seleccione Nuevo proyecto. Aparecerá el cuadro de diálogo Nuevo proyecto.
En la ventana Tipos de proyecto, seleccione Visual Basic y Windows si aún no están seleccionados, seleccione Aplicación para Windows en la ventana Plantillas.
En la ventana Propiedades en Nombre, escriba TeddyBearProject y haga clic en Aceptar. El proyecto se agregará al Explorador de soluciones y se abrirá el Diseñador de Windows Forms.
Agregue los controles al formulario y establezca sus propiedades tal como se especifica.
Control
Propiedades
Valores de la propiedad
Label
Name
Text
customerLabel
Formulario de pedido de ositos
TextBox
Name
Text
customerName
Nombre del cliente
Label
Name
Text
bearColorLabel
Colores disponibles
ComboBox
Name
Items
Text
bearColor
Negro, marrón, con manchas
Color del osito
Label
Name
Text
bearSizeLabel
Tamaños disponibles
ComboBox
Name
Items
Text
bearSize
Pequeño, normal, grande
Tamaño
Button
Name
Text
order
Pedido
Agregar funcionalidad
Ahora que ha agregado al conjunto los controles y sus propiedades, debe colocar código detrás de ellos para que funcionen. El código siguiente controla el evento Click para el botón Pedido y muestra un mensaje al cliente.
Para agregar funcionalidad al formulario y a sus controles
Agregue el código siguiente al evento Click del botón Pedido.
Dim bearOrder As String bearOrder = _ String.Format("You have ordered a {0} {1} bear.", _ bearSize.SelectedItem, bearColor.SelectedItem) MsgBox(bearOrder)
Ahora la aplicación está lista para agregarle el código de control estructurado de excepciones.
Agregar un bloque Try...Catch
Para garantizar que el cliente especifica un color de osito, agregue una instrucción Try...Catch. Recuerde lo siguiente:
Una cláusula Catch sin identificador captura todas las excepciones.
Una cláusula Catch con una cláusula When sólo detecta las excepciones cuando la expresión se evalúa como True; el tipo de expresión debe ser implícitamente convertible a Boolean.
Para agregar un bloque Try...Catch sencillo
Agregue el código siguiente al evento Click del botón Pedido después de la sección que prueba los valores de tamaño y color, es decir, después de String.Format ("You have ordered a {0} {1} bear.", BearSize.SelectedItem, BearColor.SelectedItem). Este código produce una excepción si encuentra un valor de color no válido. Para agregar las instrucciones Try, tenga en cuenta que el editor proporciona automáticamente End Try al final de la instrucción.
Try If ((bearColor.SelectedIndex < 0) Or _ (bearColor.SelectedIndex > 2)) Then Throw New System.Exception() End If ' The Catch statement handles errors caused by a lack of bear color. Catch ex As Exception When bearColor.SelectedIndex < 0 bearOrder = String.Format("You must select a bear color!") Finally Beep() ' Beep at the end. End Try
Para agregar una cláusula Catch adicional
Agregue un nuevo elemento, "Violeta", al control ComboBox bearColor.
Agregue el código siguiente después de la línea de código bearOrder = String.Format("You must select a bear color!"):
Catch ex As Exception When bearColor.SelectedIndex = 3 bearOrder = String.Format("There are no bears of that color.")
Puede agregar tantas cláusulas Catch como sean necesarias al código.
Pruebas
Ahora puede probar la aplicación para asegurarse de que funciona correctamente.
Para generar y ejecutar la aplicación
En el menú Generar, seleccione Generar TeddyBearProject.
Presione F5 para ejecutar la aplicación. Aparecerá el formulario principal.
Para probar la aplicación
Escriba un nombre en el cuadro de texto Nombre del cliente y, a continuación, seleccione un tamaño y color para el osito en los cuadros combinados Colores disponibles y Tamaños disponibles.
Haga clic en el botón Pedido. Si ha seleccionado Negro, Marrón o Con manchas como color en el paso anterior, aparecerá un mensaje especificando el tamaño y color del osito solicitado.
Si no ha especificado un color, aparecerá un mensaje en el que se le pedirá que lo haga.
Haga clic en Aceptar para cancelar el mensaje.
En el cuadro de texto Colores disponibles, seleccione Violeta y, a continuación, haga clic en el botón Pedido. Aparecerá un mensaje que le indicará que no hay ositos disponibles en ese color.
Vea también
Conceptos
Información general sobre el control estructurado de excepciones de Visual Basic
Referencia
Instrucción On Error (Visual Basic)
Instrucción Try...Catch...Finally (Visual Basic)
Instrucción Throw (Visual Basic)