miércoles, 29 de febrero de 2012

3 - Visual Studio Administrar Excepciones (Try - Catch)

En los siguientes ejercicios realizaremos el control de excepciones de las aplicaciones que construiremos utilizando el bloque Try … Match … Finally

Implementando Bloque Try.

  • Crearemos una solución que llamaremos WinTry001.
  • Agregaremos un control Button al formulario que se crea por defecto en la solución.
  • Ingresaremos al método que atiende el evento clic del control botón.
  • Agregaremos las siguientes líneas de código al método mensionado:

Dim shNum As Short
Dim intNum As Integer = 1000
shNum = intNum * intNum

  • Ejecutar la aplicación y presionar el botón que se encuentra en el formulario. Al ejecutar la acción se observará que se ha desplegado el siguiente mensaje de error.



  • Detener la aplicación y agregar las siguientes líneas de código que permitirán administrar el error generado:

Dim shNum As Short
Dim intNum As Integer = 1000

Try

shNum = intNum * intNum

Catch

MessageBox.Show("Ha Ocurrido un Error")

End Try

  • Al ejecutar la aplicación se observará que el mensaje es desplegado en pantalla de la siguiente forma:


Si se observa en el presente ejemplo no se ha capturado el mensaje de error, solo se ha administrado el mismo, utilizando el bloque try … catch.

En los siguientes pasos veremos como se debe capturar un mensaje de error utilizando la clase base System.Exception.

  • En el bloque catch, antes mencionado, modificaremos las líneas de código agregando l siguiente:

Dim shNum As Short
Dim intNum As Integer = 1000

Try

shNum = intNum * intNum

Catch ex As System.Exception

MessageBox.Show(ex.Message)

End Try

  • Ejecutar la solución y presionar el botón del formulario, el cual desplegará el siguiente mensaje en la interfaz:


  • Precinar el botón aceptar y detener la aplicación.
  • Agregar otro bloque catch, antes del que se encuentra definido, incluyendo la llamada a clase de manejo de errores AritmeticalException. Quedando este de la siguiente forma:

Dim shNum As Short
Dim intNum As Integer = 1000

Try

shNum = intNum * intNum

Catch ex As ArithmeticException

MessageBox.Show(ex.Message)

Catch ex As System.Exception

MessageBox.Show(ex.Message)

End Try

  • Agregar un punto de interrupción en la línea de código definida y ejecutar esta. Como se puede observar, al capturar la excepción aritmética, entra a ese bloque y despliega el mensaje pertinente.




  • Podríamos definir aun más la depuración del mensaje agregando las siguientes líneas de código:

Dim shNum As Short
Dim intNum As Integer = 1000

Try

shNum = intNum * intNum

Catch ex As System.OverflowException

MessageBox.Show("El número es demasiado largo", ex.Source)

Catch ex As System.ArithmeticException

MessageBox.Show("Error matemático", ex.Source)

Catch ex As System.Exception

MessageBox.Show(ex.Message)

End Try

  • El método Source del manejo de excepciones, en este caso desplegará en la cabecera del mensaje el nombre de la aplicación que esta fallando, esto se podrá observar al ejecutar la aplicación:



  • Por último agregaremos el bloque finally, el cual se ejecutará siempre, para ello realizaremos los siguientes cambios en la aplicación:
  • Ejecutar la solución y presionar el botón que se encuentra en el formulario, se desplegarán los siguientes mensajes:



  • Cambiar el valor de la variable intNumero a 5 y ejecutar la aplicación.

Dim intNum As Integer = 5


No hay comentarios: