Taller 1 4

8
Ing. Heber Gómez Hurtado Ing. Heber Gómez Hurtado 1 UNIVERSIDAD SAN PEDRO TALLER DE PROGRAMACION I TALLER DE PROGRAMACION I Tema: Excepciones Tema: Excepciones

Transcript of Taller 1 4

Page 1: Taller 1 4

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 11

UNIVERSIDAD SAN PEDRO

TALLER DE PROGRAMACION ITALLER DE PROGRAMACION I

Tema: ExcepcionesTema: Excepciones

Page 2: Taller 1 4

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 22

EXCEPCIONESEXCEPCIONES Es una condición imprevista o de error

que interrumpe el flujo del programa. El manejo o tratamiento de excepciones

consiste en capturar una excepción y tomar las medidas adecuadas al respecto.

Las excepciones son objetos que pueden ser lanzadas explícitamente por nuestro código con la instrucción throw(arrojable) o implícitamente por alguno de los métodos u operaciones que llamamos en él.

Page 3: Taller 1 4

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 33

ExcepcionesExcepciones La clase Throwable posee un string que puede

ser utilizado para describir la exception. Las excepciones poseen una

jerarquía de clases cuya raíz es Throwable aunque la creación de nuevas excepciones se hace a partir de la clase Exception (subclase de Throwable)..

La excepciones y errores estándar de tiempo de ejecución extienden las clases RuntimeException y Error (excepciones no verificadas).

Page 4: Taller 1 4

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 44

ExcepcionesExcepciones Algunas Excepciones pueden presentarse cuando:

• El usuario escribe una palabra cuando se esperaba un numero.

• En el programa se intenta leer un archivo que no existe.

• En el programa no se puede establecer una conexión de red.

• En el programa se intenta realizar una división por cero.

• Cuando se intenta calcular la raíz cuadrada de un numero negativo.

• Cuando se excede del numero de elementos de un arreglo.

Page 5: Taller 1 4

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 55

Jerarquía de Excepciones Jerarquía de Excepciones Throwable

Exception Error

IOExceptionRunTimeExceptionOutOfMemoryError

InternalError

FileNotFoundException

ZipExceptionNullPointerException

ArrayIndexOutBoundsException

ArithmeticException

Page 6: Taller 1 4

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 66

Manejo de Excepciones: Try{..} catch{..}Manejo de Excepciones: Try{..} catch{..} Si no existe excepciones, el catch es como no Si no existe excepciones, el catch es como no

existiera.existiera. Dentro del try se lanza(throw) una exception.Dentro del try se lanza(throw) una exception.

• Se ignora el resto del codigo.Se ignora el resto del codigo.• Se ejecuta lo que diga el catch. Se ejecuta lo que diga el catch.

Try {

r=m/n;

}catch(Exception e){

System.out.println(e.getMessage());

}

Esta sentencia genera una excepción cuando n vale 0

Page 7: Taller 1 4

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 77

Manejo de Excepciones: Try.. catch.. finallyManejo de Excepciones: Try.. catch.. finally Se puede añadir la cláusula finally que se ejecutaSe puede añadir la cláusula finally que se ejecuta

• Cuando acaba el código normal (try)Cuando acaba el código normal (try)• Cuando el código excepcional (catch)Cuando el código excepcional (catch)• Es decir, siempre se ejecuta; incluso si try lanza una Es decir, siempre se ejecuta; incluso si try lanza una

excepción que no captura ningún catch. excepción que no captura ningún catch.

try {

}

catch(Exception e){

System.out.println(e.getMessage());

}

finally{

}

try {

}

catch(Exception e){

System.out.println(e.getMessage());

}

finally{

}

Page 8: Taller 1 4

Ing. Heber Gómez HurtadoIng. Heber Gómez Hurtado 88

Crear nuevos tipos de ExcepcionesCrear nuevos tipos de Excepciones Un nuevo tipo de excepción puede Un nuevo tipo de excepción puede

crearse fácilmente, basta con definir crearse fácilmente, basta con definir una subclase de un tipo de excepción una subclase de un tipo de excepción ya existente.ya existente.

public dividePorCero extends AritmeticExceptionpublic dividePorCero extends AritmeticException

{{

public dividePorCero(String Message) {public dividePorCero(String Message) {

super(message);super(message);

}}

}}