Manejo de Excepciones en vb.net 2005 (Try-Catch)
El manejo de excepciones en visual basic.net ha variado un poco al respecto de cómo se solía hacer en visual basic 6.0 que era de esta manera:
Module Module1 Sub Main() 'opción de uso de on error On Error Resume Next 'opcion de uso de on error a una etiqueta llamada datos On Error GoTo Datos Datos: End Sub End Module
Más sin embargo en vb.net se hace la recomendación de no usar esta opción que tenía Visual Basic, puesto que se ha sustituido por una opción un tanto más robusta y conocida en otros lenguajes también llamada €œTry-Catch€.
En este ejemplo se esta capturando la excepción y enviándola a una variable de tipo exeption
Module Module1 Sub Main() Try 'Bloque try Catch ex As Exception Console.Write(ex) 'Console.Write(ex.InnerException) para una captura más 'amplia de la excepción 'para winforms,MsgBox(ex) End Try End Sub End Module
Este ejemplo es una forma de usar el método €œTry-catch€, sin captura de exepción, pero no es aconsejado puesto que si hay algún error pasa de largo y no avisa de nada.
Module Module1 Sub Main() Try 'Bloque try Catch End Try End Sub End Module
El funcionamiento de esta función es básicamente sí ocurre algún error dentro del bloque Try, será campurado y puesto en una variable de tipo Exeption, tal como se muestra en el primer ejemplo.
De esta manera podemos tener un buen manejo de nuestros errores, tambien podemos manejar los errores de una manera un tanto más avanzada por ejemplo:
Module Module1
Sub Main()
Dim VarUno, VarDos, Restultado As Integer
Console.Write("ingreso un numero")
VarUno = CInt(Console.ReadLine())
Console.Write("ingreso el segundo")
VarDos = CInt(Console.ReadLine())
Restultado = CInt(VarUno / VarDos)
Try
Catch ex As InvalidCastException
'captura error en conversión de tipos
Console.Write("ingrese un numero correcto")
Catch ex As Exception When VarUno = 0
'caputa de exepcion explícita sobre una variable
'con determinado contenido
Console.Write("Ingrese un valor distinto a 0")
Catch ex As Exception
Console.Write(ex)
'para winforms,MsgBox(ex)
Finally
' esta parte es para finalizar nuestro
' nuestro proceso y si quiseiramos algún
' mensaje también lo podemos moner aqui
Console.Write("Fin de la transacción")
End Try
End Sub
End Module
Como se muestra en el ejemplo la captura de las exepciones puede ser manejada a un nivel en el cual nosotros podemos hacer de el manejo de expciones algo totalmente manejable, es recomendable tal como está en el ejemplo primero coloquemos las exepciones específicas para depués dejar paso a una expeción genérica en la cual el error se mostrará de una manera un poco menos comprensible para el usuario.
[...] Indice del manual 1. Configuración 2. Creación de una solución 3. Declaración de Variables 4. Declaración de Constantes 5. Creación de enumeraciones. 6. Declaración de Array’s. 7. Declaración de Clases No.1. 8. Declaración de Clases No.2. 9. Declaración de Estructuras 10. Manejo de excepciones Siguiente paso son las excepciones… [...]
la unica diferencia para windows form es
con la ultima instrucción :
Console.Write(ex) en winforms seria:
Console.MsgBox(ex)