jueves, 3 de julio de 2014

APUNTE EXCEPCIONES

EXCEPCIONES
INTRODUCCIÓN  
Cuando sucede un evento anormal en la ejecución de un programa y lo  detiene decimos que se ha producido una excepción. Cualquier programa bien  escrito debe ser capaz de tratar las posibles excepciones que pueden ocurrir en  su ejecución de manera inteligente y de recuperarse, si es posible, de ellos.
 Con los mecanismos de recuperación ante excepciones construimos  programas robustos y con capacidad de recuperación ante errores más o menos previsibles que se pueden producir en el momento en que se ejecuta el  programa.
  En Java una excepción es un objeto que avisa que ha ocurrido alguna condición inusual. Existen muchos objetos de excepción predefinidos, y  también podremos crear los nuestros propios.
 Cuando se capturan excepciones en Java las sentencias que pueden causar un  error se deben insertar en un bloque formado por try y catch, a continuación,  en catch debemos tratar esos posibles errores. También existe la posibilidad de  lanzar una excepción cuando se produzca una determinada situación en la ejecución del programa, para hacerlo utilizaremos la instrucción throw.
TRY
Define un bloque de código donde se puede generar una excepción. El bloque try  va seguido inmediatamente de uno o más bloques catch y opcionalmente de una  cláusula finally. Cuando se lanza una excepción el control sale del bloque try actual y pasa a un manejador catch apropiado.
 La sintaxis general del bloque try consiste en la palabra clave try y una o más  sentencias entre llaves.  
try {
 // Sentencias Java
 }
  Se pueden presentar dos situaciones diferentes a la hora de definir el bloque try:  Podemos tener más de una sentencia que generen excepciones, en cuyo caso podemos definir bloques individuales para tratarlos.  Podemos tener agrupadas en un mismo bloque try varias sentencias que puedan lanzar excepciones, con lo que habría que asociar múltiples controladores a ese
bloque.
Será la decisión del programador utilizar una forma u otra de controlar las
excepciones.

CATCH
Define el bloque de sentencias que se ejecutarán cuando se haya  producido una excepción en un bloque try.
  La sintaxis general de la sentencia catch en Java es la siguiente:
 catch( TipoExcepcion nombreVariable ) {
 // sentencias Java
 }
 Se pueden colocar sentencias catch sucesivas, cada una controlando una excepción diferente.
 No debería intentarse capturar todas las excepciones con una sola cláusula ya que representa un uso demasiado general y podrían llegar muchas  excepciones.
  catch( Exception e ) { … } //
THROW
 La sentencia throw se ejecuta para indicar que ha ocurrido una  excepción, o lanzamiento de una excepción. La sentencia throw  especifica el objeto que se lanzará. La forma general de la sentencia  throw es:
 throw ObjetoThrowable;
  El flujo de la ejecución se detiene inmediatamente después de la  sentencia throw, y nunca se llega a la sentencia siguiente, ya que el control sale del bloque try y pasa a un manejador catch cuyo tipo  coincide con el del objeto. Si se encuentra, el control se transfiere a esa  sentencia. Si no, se inspeccionan los siguientes bloques hasta que el gestor de excepciones más externo detiene el programa.
FINALY
 El bloque de código definido en finally se ejecuta siempre, haya o no excepción, este es opcional.
TIPOS DE EXCEPCIONES
Excepciones predefinidas más comunes:
*      ArithmeticException :Las excepciones aritméticas son típicamente el resultado de una división por 0:
        int i = 12 / 0;
*      NullPointerException :Se produce cuando se intenta acceder a una variable o método antes de ser definido.
*      ClassCastException: El intento de convertir un objeto a otra clase que no es válida.
         y = (Prueba)x; // donde x no es de tipo Prueba
NegativeArraySizeException :Puede ocurrir si se intenta definir el tamaño de un array con un número
negativo.
 ArrayIndexOutOfBoundsException :Se intenta acceder a un elemento de un array que está fuera de sus límites.


 NoClassDefFoundException :Se referenció una clase que el sistema es incapaz de encontrar.

No hay comentarios:

Publicar un comentario