jueves, 24 de noviembre de 2011

Try Catch Finally


Control extructurado de errores (excepciones) mediante Try Catch Finally

https://docs.google.com/presentation/d/15nXdmA8MPU-EtWKsMemRCxFMBCELyPEWGgyATyErRek/edit





Una vez subsanados los errores de sintaxis en tiempo de diseño, conocidos como errores de compilación. La aplicación ya se puede compilar.

Sin embargo pueden seguir existiendo errores, que al no deberse a mala sintaxis no son detectables por el IDE.

Estos errores se detectarán al ejecutar la aplicación desde el IDE, y provocan que la ejecución de la aplicación se detenga de forma no deseada.

Los errores detectados en esta etapa se conocen como errores en tiempo de ejecución o excepciones.

Los errores en tiempo de ejecución, usualmente se pueden solucionar reescribiendo el código de la parte afectada.

ej.En una división, en la que se producirá una excepción si se intenta dividir entre cero.

La mayor parte de este tipo de errores se puede solucionar, incluyendo en el código validaciones previas a la ejecución del código que provoca el error.

Sin embargo a pesar de validar los datos que se introducen, se puede dar el caso de que se produzcan excepciones.

Un ejemplo sería el caso de un fichero dañado o incompatible.

Para obtener un listado de las excepciones se puede acceder a la web de MSDN:
La clase Exception representa todas las excepciones que se producen durante la ejecución de una aplicación
http://msdn.microsoft.com/es-es/library/system.exception.aspx

En concreto las excepciones que más nos interesan son las de sistema:
La clase SystemExcepciton es la clase base para las excepciones predefinidas en el espacio de nombres System
http://msdn.microsoft.com/es-es/library/system.systemexception.aspx

Entre ellas podemos encontrar:

Fichero inexistente (FileNotFoundException)
Excepción que se produce cuando se produce un error al intentar tener acceso a un archivo que no existe en el disco.
http://msdn.microsoft.com/es-es/library/system.io.filenotfoundexception.aspx

División por cero (DivideByZeroException)
Excepción que se produce cuando se intenta dividir un valor entero o decimal entre cero.
http://msdn.microsoft.com/es-es/library/system.dividebyzeroexception.aspx

Asignación incorrecta (InvalidCastException)
Indica una conversión de tipos o una conversión explícita de otra naturaleza que no es válida.
http://msdn.microsoft.com/es-es/library/system.invalidcastexception.aspx

Indice de matriz incorrecto (IndexOutOfRangeException)
Se produce cuando se intenta tener acceso a un elemento de una matriz con un índice que está fuera de los límites de la matriz.
http://msdn.microsoft.com/es-es/library/system.indexoutofrangeexception.aspx

La forma de tratar estas excepciones es a través de

Try ..... Catch .... Finally

Esta instrucción permite capturar las excepciones y ejecutar las instrucciones deseadas para controlarlas.

Es posible indicar vários bloques Catch, de los cuales solo se ejecutará uno, comenzando a evaluarlos por el primero.

Se aconseja indicar en el primer bloque Catch las excepciones más concretas y en los subsiguentes las más genéricas.

Bibliografía
MSDN.
Wikipedia.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...