jueves, 17 de mayo de 2012

Try Catch


Try Catch Finally

Manipulación de Errores


Difícil es, por no decir imposible, encontrar en programador que no tenga errores en su código. Podemos clasificar los errores en una serie de categorías genéricas.


1.      Errores de Escritura: Son los de localización más inmediata, ya que se producen por un error sintáctico al escribir nuestro código y gracias a IDE de Visual Studio .NET, podemos detectarlo rápidamente.

             While (iContador < 10)

            End

2.      Errores de Ejecución: Estos errores son los que provocan un fallo en la ejecución del programa y u interrupción. El ejemplo siguiente provoco un error, ya que se intenta asignar un valor que no corresponde ala tipo de dato de una variable.

Sub Main()
        Dim dtfecha As Date
        dtfecha = ""
    End Sub

3.       Errores Lógicos: Son los más difíciles de captura, ya que el código se encuentra correctamente escrito, produce un problema por fallo de planteamiento de código.
 Bueno específicamente, ¿Qué es un error y una Excepción?
Error: Es un evento que se produce durante el funcionamiento de un programa.
Excepción: Específicamente es un objeto generado por un error.  


Manipulación Estructurada de Errores
En este tipo de tratamiento, cada vez que se produce un error, se genera un objeto de la clase Exception, conteniendo la información del error ocurrido. La maenera de captura este tipo de objetos pasa por una estructura de control del lenguaje, proporcionada para esta finalidad.


 
Sintaxis del Bloque try/catch/finally
Para los Bloques try/catch existe una variación que consiste en agregar una sección denominada finally, dicha estructura estaría compuesta de la siguiente manera:

try {
    // Código que pueda generar Errores ("Exception's")
     } catch(Tipo1 id1) {
       // Manejar "Exception's" para la Clase Tipo1
     } catch(Tipo2 id2) {
       // Manejar "Exception's" para la Clase Tipo2
     } catch(Tipo3 id3) {
       // Manejar "Exception's" para la Clase Tipo3
     } finally {
       // Actividades que siempre ocurren 
     }
La utilización de finally es empleada dentro de un Bloque try/catch para realizar tareas que deben ser ejecutadas independientemente del comportamiento de errores.
Cuando se atrapa un error ("Exception") un programa queda inconcluso, es esta terminación abrupta la que puede causar que algún recurso/mecanismo permanezca asignado o mal utilizado; a través de una sección finally se garantiza que sea ejecutado un juego de instrucciones independientemente del tipo de error que pueda ocurrir; un uso muy común para una sección finally consiste en liberar conexiones hacia Bases de Datos que pudieran haber sido asignadas en la sección try


SINTAXIS
            Try
            'codigo que puede provocar errores
            [ Catch [Excepcion [ as TipoExcepcionA]][ When Exprecion]
            'respuesta a error de tipo A
            [ Catch [Excepcion [ as TipoExcepcionN]][ When Exprecion]
            'respuesta a error de tipo N
            [Exit Try]
            [Finally]()
            'codigo posterior al control de errores
        End Try
Es posible utilizar Catch de un modo genérico, es decir, sin establecer que tipo de excepción se ha producido.
Clases de Excepciones

Cada vez que se produce un error, el entorno de ejecución genera una excepción con la información del informe acontecido.
Entre las propiedades y métodos que podemos utilizar, se encuentran las siguientes:
·         Message: Descripción del error.
·         Source: Nombre del objeto o aplicación que provoco el error.
·         Stack Trace: Ruta o traza del código en la que se produjo el error.
·         ToString(): Devuelve una cadena con información detallada del error.



Exit Try
Esta es una sentencia, atreves de esta sentencia, obligamos al flujo del programa a salir de la estructura de control de errores, desde cualquier punto de la misma en que nos encontremos.

No hay comentarios:

Publicar un comentario