Excepciones

Excepciones
Situaciones anómalas que aparecen durante la ejecución de un programa.
·         Cuando aparece una condición excepcional se crea un objeto Throwable que se envía al método que la ha generado
Su gestión permite la detección y corrección de errores en ejecución.
·         Simplifican los programas ya que se diferencia el código normal del código de tratamiento de errores.
·         Se crean programas mas robustos ya que en muchos casos si no se trata la excepción el programa no compila.
·         Sólo se deben usar cuando no se puede resolver la situación anómala directamente en ese contexto.

Dos tipos de situaciones excepcionales.

Excepciones:
Situaciones mas o menos habituales que impiden completar la ejecución correcta del código. Generalmente el programador debe proporcionar el código que las trate o gestione.
·         Ejemplos

Ø  Error en el código o en los datos.
Ø  Uso inadecuado de un método.


Errores
Representan situaciones de error normalmente no recuperables. El programador normalmente no tiene que proporcionar un tratamiento para ellas.
·         Ejemplos:
No se puede localizar y cargar una clase, se agota la memoria.


RuntimeException:
Excepciones que se dan durante la ejecución del programa.
Tipos de excepciones
·         Predefinidas en el sistema
Se lanzan automáticamente cuando se realiza alguna operación no valida.

·         Acceso a un objeto que no existe.
·         Acceso a una posición de un array que no existe.
·         División por cero.

·         Generadas por el programador

Ø  El programa explícitamente genera una excepción al detectar una situación de error que no se puede resolver en ese contexto.
Ø  Útil en situaciones de prueba y depuración.

Gestion de excepciones

Para gestionar excepciones hay que insertar el código donde se puede dar dentro de un bloque “try”. Se crea una lista de bloques “catch” adyacente, uno por cada posible excepción.

¿Cómo se Gestiona?

try {
// bloque de código donde puede producirse una excepción
}catch( TipoExcepción1 e ) {
// gestor de excepciones para TipoExcepción1
// se ejecuta si se produce una excepción de tipo TipoExcepción1
}catch( TipoExcepcion2 e ) {
// gestor de excepciones para TipoExcepción2
throw(e); // se puede volver a lanzar la excepción propagar
finally {
// bloque de código que se ejecuta siempre, haya o no excepción
}

0 comentarios:

Publicar un comentario