Es el denominado sistema estructurado, es algo engorroso, pues hay que escribir cada bloque de código con su propia estructura de tratamiento de errores lo que resulta incomodo.
Obliga a prever que tipos de error se pueden producir para darles salida a los mismos.
La estructura de una instrucción try es la siguiente.
Private Sub Ejemplo()
Dim A, b, c As Integer
Try
' el programa
A = b / c
Catch Ex As OverflowException ' tratamiento de error
Console.WriteLine("Error overflow del tipo {0}", Ex.Message)
Catch Ex As ArithmeticException ' tratamiento de error
Console.WriteLine("Error aritmético del tipo {0}", Ex.Message)
Finally ' siempre se ejecutará
Console.WriteLine("Siempre se ejecutará")
End Try
End Sub
Try
' el programa
A = b / c
Catch Ex As OverflowException ' tratamiento de error
Alberga nuestro código a proteger.
Catch Ex As OverflowException ' tratamiento de error
Console.WriteLine("Error overflow del tipo {0}", Ex.Message)
Es la parte de tratamiento de error previsto en el tipo definido por As OverflowException
Finally ' siempre se ejecutará
Console.WriteLine("Siempre se ejecutará")
Todo lo que se escriba entre Finally y End Try siempre se ejecuta, pase lo que pase, excepto un aborto de ejecución del programa.
Como se puede comprobar en el ejemplo se pueden abordar diversas situaciones de error en un mismo Try.
En VB se podría decir que es una inhibición real, pues no hacer nada, implica que el error se devuelve por la línea de ejecución hasta encontrar un procedimiento que lo trata o se llega al programa principal y se aborta el programa por error manifiesto.
Con el desvío de excepciones se obtienen varias ventajas, e inconvenientes.
Se reduce el volumen de código, por lo que es más sencillo de releer y seguir. También se obtiene de esa forma la posibilidad, de que cuando se crea código para terceros, se deja la forma o la interface de los mensajes de error, en manos de quien la usa, lo cual en la mayoría de los casos es una buena alternativa, ya que el código queda completamente integrado en el programa donde se incrusta la clase.
Evidentemente tiene como inconveniente, que no responsabilidad, de que eso genere una ejecución inadecuada, pero lo será por quien la usa, no por quien la escribió.
Síguenos en: Facebook Sobre aulaClic Política de Cookies