domingo, 21 de junio de 2015

EXCEPCIONES EN JAVA

Introducción

Dentro de la programación hay algo que casi siempre va a ocurrir y son los errores en los programas, el lenguaje de programación Java utiliza excepciones para permitir trabajar de una mejor manera con los errores. Los errores que se pueden clasificar de la siguente manera:

Errores de sintaxis: Ocurren en tiempo de diseño o codificación. 
Errores logicos: Ocurren cuando la logica en que se ha realizado un programa no es la deseada.
Errores del sistema: Estos pueden ser fatales y no fatales, estos ultimos son concidos como las excepciones y pueden sererrores como: división para cero, conversión de tipos, etc.

Los primeros lenguajes se empezaron a ver las necesidades de un sistema de tratamiento de errores asi es como se aparecen las excepciones, los lenguajes fueron evolucionando hasta tener sistemas gestores de excepciones con amplias posibilidades, La incorporación de sistemas de tratamiento de errores permitió dar un gran paso en la mejora de la respuesta de los programas ante excepciones que se había comprobado que eran inevitables. 

Concepto de excepción: Una excepción es un evento que ocurre durante la ejecución del programa que interrumpe el flujo normal de las sentencias

Uso de excepciones en Java

Cuando se produce un error en algún método, se lanza un objeto de tipo Throwable, cualquier método que llame a este,   puede capturar la excepción y tratarlo de la forma mas oportuna. Después de capturar la excepción, la ejecución del programa continua en el punto donde se haya capturado la excepción, y no vuelve al método en el que se produjo la excepción.   

Jerarquía de clases para el manejo de excepciones en Java



Throwable: Es la clase raiz que se encuentra en el paquete java.lang y representa aquellos que se puede lanzar en Java. contiene una instantanea del estado de la pila en el momento en el que se creó el objeto, tambien almacena un mensaje que detalla qué error se produjo, además de una causa que permite representar el error que causó este error.

Error: Es una subclase de Throwable, y nos indica problemas graves que una aplicación no debería intentar solucionar.

Exception: Sus subclases nos indican situaciones que una apliccación debería de tratar de forma razonable. las principales excepciones son:

  • RuntimeException: Son errores del programador (división para cero, acceso fuera de los límites de un array).
  • IOException: Son errores que no puede evitar el programador(relacionados con la E/S del programa).

¿Cómo crear sus propias excepciones?

Hay dos formas de tratar errores en Java: capturarlos o lanzarlos. Para el tratamiento de excepciones, Java necesita de un conjunto de palabras nuevas para tener en cuenta que cualquier código puede fallar o ser mal interpretado en tiempo de ejecución,  estas son try, catch y finally que corresponden a la captura de errores.

Bloques try - catch

Se utilizan para capturar las excepciones que se hayan podido producir en el bloque de código delimitado por try y catch, cuando se produce la excepción el bloque try termina su ejecucuón. 
La clausula catch recibe como argumento un objeto de tipo Throwable y estos pueden ser: Exception, dentro de este, ArithmeticException, NullPointerException,etc.



En la representación de un código empleando estos bloques si no hay ninguna excepción se ejecutarán los bloques: 1,2,5 en ese orden. 
Si existe una excepción de tipo aritmético se esecutarán los bloques 1,2*,3,5, y la excepción ocurrirá en bloque 2. 
Si se da otro tipo de excepción se ejecutarán los bloques 1,2*,4,5.  

Finally

Para que se ejecute un freagmento de código independientemente de si se produce una excepción o no usamos la cláusula finally.


Si no existe ninguna excepción se ejecutarán los bloques 1,2,4,5 de forma secuencial. 
Si existe una excepción de tipo aritmético se ejecutarán los bloque 1,2*,3,4,5 y si existe una excepción de otro tipo se ejecutarán los bloques 1,2*,4. 
Si el cuerpo del bloque try llega a comenzar su ejecución, el bloque finally siempre se ejecutará detrás del bloque try si no se producen excepciones, después de un bloque catch si éste captura una excepción, y justo después de que se produsca la excepción si el catch no captura la excepción y antes de que la excepción vaya hacia arriba.


BIBLIOGRAFIA


No hay comentarios:

Publicar un comentario