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.
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