Excepciones (5)

Excepciones »
Christian Mora

Excepciones
Christian Mora
christmo99@gmail.com
Cuando ocurre un error dentro de un método Java, el método puede lanzar una excepción para indicar a su llamador que ha ocurrido un error y que el error está utilizando la sentencia throw.

Cuando se genera una excepción, el programa en java busca un manejador para el error (handler).
El handler es una porción de código que identifica el tipo de objeto correspondiente al error que se ha producido, y contiene sentencias que se van a ejecutar luego de que ocurrió el error.

El método llamador puede utilizar las sentencias try, catch, y finally para capturar y manejar la excepción.
Excepciones
TIPOS DE EXCEPCIONES
Son las excepciones que revisa el compilador.
Checked:
Son las excepciones que no revisa el compilador y se dan en tiempo de ejecución.
Unchecked:
JERARQUIA DE 
EXEPCIONES
MANEJO DE EXECPCIONES
Bloque try
Es el bloque de código donde se prevé que se genere una excepción. 

El bloque try tiene que ir seguido, al menos, por una cláusula catch o una cláusula finally
Bloque catch
Es el código que se ejecuta cuando se produce la excepción. 

En este bloque tendremos que asegurarnos de colocar código que no genere excepciones.

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, como esta
Bloque finally
Es el bloque de código que se ejecuta siempre, haya o no excepción.

Este bloque finally puede ser útil cuando no hay ninguna excepción. 

Es opcional y se lo usa generalmente para liberar recusos.
LA CLASE THROWABLE 
Y SUS SUBCLASES
La clase RuntimeException representa las excepciones que ocurren dentro de la máquina virtual Java (durante el tiempo de ejecución).

Como las excepciones en tiempo de ejecución están omnipresentes e intentar capturar o especificarlas todas en todo momento podríar ser un ejercicio infructuoso (y un código infructuoso, imposible de leer y de mantener), el compilador permite que estas excepciones no se capturen ni se especifiquen.
Cuando falla un enlace dinámico, y hay algún fallo "hardware" en la máquina virtual, ésta lanza un error. Tipicamente los programas Java no capturan los Errores. Pero siempre lanzarán errores.
ERROR
Indica que ha ocurrido un problema pero que el problema no es demasiado serio. La mayoría de los programas lanzarán y capturarán excepciones.

La clase Exception tiene muchos descendiente definidos en los paquetes Java. Estos descendientes indican varios tipos de excepciones que pueden ocurrir. Una subclase de Exception tiene un significado especial en el lenguaje Java: RuntimeException.
EXCEPCION
EXCEPCIONES EN 
TIEMPO DE EJECUCIÓN
La sentencia throw se utiliza para lanzar explícitamente una excepción. 

Todos los métodos Java utilizan la sentencia throw para lanzar una excepción.

Esta sentencia requiere un sólo argumento, un objeto Throwable. En el sistema Java, los objetos lanzables son ejemplares de la clase Throwable definida en el paquete java.lang. 

En primer lugar se debe obtener un descriptor de un objeto Throwable, bien mediante un parámetro en una cláusula catch o, se puede crear utilizando el operador new. La forma general de la sentencia throw es:
throw ObjetoThrowable;
THROW
THROWS
La palabra clave throws se utiliza para identificar la lista posible de excepciones que un método puede lanzar. 

Si un método es capaz de provocar una excepción que no maneja él mismo, debería especificar este comportamiento, para que todos los métodos que lo llamen puedan colocar protecciones frente a esa excepción.
Ejemplo
public static void metodo1() throws Exception
{
      try {
         metodo2(); // llamar a metodo2
      }
      // atrapar la excepción lanzada desde metodo2
      catch ( Exception excepcion ) {
         throw new Exception( "Excepcion lanzada en metodo1", excepcion );
      }
 }
// Bloque1 
        try { 
          // Bloque 2 
        } catch (ArithmeticException ae) { 
          // Bloque 3 
        } finally { 
          // Bloque 4 
        } 
        // Bloque 5
Se pueden dar  varios tipos de errores
Al tratar de acceder a elementos de arreglos con un índice mayor al del último elemento del arreglo.
Divisiones para cero.
Manejo de archivos: No existe, no se tienen suficientes permisos, etc.
Errores accediendo a bases de datos.
Errores definidos por el usuario: Tarjeta incorrecta, excede cupo de transferencia, etc.
Métodos de la clase Throwable
Muestra el contenido de la call stack.  Es útil para determinar en qué método ocurrió la excepción, y que otros métodos llamaron a este.
String getMessage()
Retorna un mensaje grabado en el objeto de excepción.
void printStackTrace()

Loading comments...

Please log in to add your comment.

Report abuse

More presentations by Christian Mora

More prezis by author