0% encontró este documento útil (0 votos)
4 vistas18 páginas

Tipos y Manejo de Excepciones en Java

Las excepciones son objetos que representan el estado de una aplicación ante situaciones anómalas y son utilizadas en programación para manejar errores. Existen dos tipos principales: excepciones comprobadas y no comprobadas, cada una con sus propias características y jerarquías. El uso de bloques try-catch permite capturar y manejar excepciones, mejorando la organización del código y facilitando la depuración.

Cargado por

chess_mex
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas18 páginas

Tipos y Manejo de Excepciones en Java

Las excepciones son objetos que representan el estado de una aplicación ante situaciones anómalas y son utilizadas en programación para manejar errores. Existen dos tipos principales: excepciones comprobadas y no comprobadas, cada una con sus propias características y jerarquías. El uso de bloques try-catch permite capturar y manejar excepciones, mejorando la organización del código y facilitando la depuración.

Cargado por

chess_mex
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tema 14:

Excepciones

0
Excepción

z Definición

z Las Excepciones son objetos que


definen el estado de la aplicación
cuando se producen situaciones
anómalas.

z Son un mecanismo usado por


muchos lenguajes de programación
para describir que hacer cuando
inesperado sucede.

Mónica E. García García Feb ‘07 1


Tipos de excepciones
z Exceptions
3Checked
– Son aquellas que ocurren de manera
externa cuando el programa esta
trabajando. Por ejemplo al intentar
accesar a un archivo que no es
localizado o la falla de red.
3Unchecked
– Runtime exceptions.
Por ejemplo el intentar acceder a
una localidad mas alla de la del fin del
array (errores en diseño e
implementación.
– Errors
Son aquellas excepciones que son
raras y difíciles de recuperarse de
ellas como lo es “correr” fuera del
rango de memoria.
Mónica E. García García Feb ‘07 2
Jerarquía de clases
z [Link]
+----[Link]
|
+----[Link]
|
+----[Link]
|
+----[Link]
|...
+----[Link]
...
+----[Link]
|
+----[Link]
|. . .
+----[Link]
+----[Link]
| (uncheked)
+----[Link]
| ...
+----[Link] 3
Excepciones en
tiempo de ejecución

z [Link]

[Link]
//se ejecuta “[Link]” para una variable x con
valor null.
[Link]
//acceso a un índice no existente en un array.

[Link]
//división por cero

[Link]
//error de casting.

Mónica E. García García Feb ‘07 4


Bloques try-catch y
finally
z El bloque try-catch-finally permite
capturar una excepción.

z finally es opcional. Pero siempre se


ejecutará exista o no excepción.

z Si hay varias partes catch se ejecuta


la primera posible. El “catch” utiliza
la clase dinámica.

z Es posible uso de try-finally (sin


catch), aunque no se puede usar
“try” solo.

Mónica E. García García Feb ‘07 5


Bloques try-catch y
finally
z Sintaxis

try{
//Acciones susceptibles a excepción
}catch(Excepcion1 var1) {
// acción cuando se atrapa la
excepción
} catch(Excepcion2 var2) {
// acción cuando se atrapa la
excepción de mayor jerarquía
}
finally{
// acción que se cumple ocurra o no
una excepción
}
Mónica E. García García Feb ‘07 6
Propagación de
excepciones

z Si ningún método hasta el main atrapa


una excepción “e”, se llama a
[Link]() (método de
[Link])

Mónica E. García García Feb ‘07 7


Propagación de
excepciones

z .

Mónica E. García García Feb ‘07 8


Atrapando
excepciones
Ejemplo:

public class TestExcepciones{


public static void main(String arg[]){
int datos[] = new int[5];
try{
datos[6] = 7;
}
catch(ArrayIndexOutOfBoundsException
e){
[Link]("Indice fuera de
limites: ");
}

[Link]("Sigue por aqui");


}
}

Mónica E. García García Feb ‘07 9


Atrapando
excepciones 2
Ejemplo:

class Ejemplo {
public static void main(String args[]) {
Ejemplo p = new Ejemplo();
p.g();
[Link]("Final de método
main");
}
void f (String s) {
[Link]([Link]());
[Link]("Final de método f");
}

Mónica E. García García Feb ‘07 10


... Ejemplo
void g () {
try {
[Link]("Antes de f(null)");
f(null);
[Link]("Despues de f(null)");
} catch (NullPointerException e) {
[Link]("Excepcion de apuntado
nulo");
} catch (IndexOutOfBoundsException e){
[Link]("Excepcion de indice
erroneo");
}
finally {
[Link]("Final de bloque try");
}
[Link]("Final de método g");
}
} // de la clase Ejemplo

Mónica E. García García Feb ‘07 11


Ventajas

z Beneficios (errores y/o situaciones


anómalas):
1) Separación entre errores y código normal
2) Propagación de errores en la pila de
métodos a ejecutar.
3) Agrupación de tipos de errores y
diferenciación

z Se evita la alternativa en
programación del uso de muchos if o
if’s anidados

Mónica E. García García Feb ‘07 12


Excepciones definidas
en un programa

z Se aconseja su uso para situaciones


de prueba y depuración.
z Ventajas:
3 Permiten documentar mejor el
programa.
3 Permiten discriminar por medio de
varios bloques catch consecutivos.
3 Permiten transportar datos adicionales
desde donde se crean a donde se
capturan.

z Lo mejor es crearlas como


excepciones comprobadas (heredan
de Exception pero no de
RunTimeException)

Mónica E. García García Feb ‘07 13


throws

z throws permite cualquier objeto


“Throwable”, aunque generamente
se usa sólo para las Exception.
z Evitar errores de compilación:
3 Cuando un método puede lanzar una
excepción comprobada se debe
especificar en su cabecera con la
keyword throws.

3 Ejemplo:

void metodoUno throws IOException{


// acciones
}

Mónica E. García García Feb ‘07 14


throw
z throw permite indicar el lanzamiento de
una excepción creada por el
programador.

z La condición necesaria cuando se crea


una excepción propia, es que esta clase
herede de Exception

3Ejemplo:
class miExcepcion extends Exception{
// acciones
void metodoUno throws miExcepcion{
// acciones
if ( ! exito) {
throw new miException(“Error en
acceso al dato”);
}
}
}
Mónica E. García García Feb ‘07 15
Ejemplo
class Exception2D extends Exception {
public Exception2D (String mensaje) {
super(mensaje);
}
}
// Si algún método (como el main) crea Rectas, deberá
// o bien hacer throws de Exception2D o bien
// atrapar la excepción con bloque try-catch
class Recta2D {
private Punto2D p1, p2;
private void crearRecta2D (Punto2D p1, Punto2D p2) {
this.p1=p1;
this.p2=p2; }
// Recta a partir de dos puntos
public Recta2D (Punto2D p1, Punto2D p2)
throws Exception2D {
if ([Link](p2)) // definido en clase Punto2D
throw new Exception2D("Una recta se crea con”
+ “dos puntos distintos");
else crearRecta2D(p1, p2);
} Mónica E. García García Feb ‘07 16
...Ejemplo
// Para una recta ax+by+c=0
public Recta2D (double a, double b, double c) throws
Exception2D {
if (a==0 && b==0)
throw new Exception2D("En una recta no puede ”
+ “ser a=b=0");
else if (a==0)
crearRecta2D(new Punto2D(0, -c/b),
new Punto2D(1, -c/b));
else if (b==0)
crearRecta2D(new Punto2D(-c/a, 0),
new Punto2D(-c/a, 1));
else
crearRecta2D(new Punto2D(0, -c/b),
new Punto2D(-c/a, 0));
}
public Punto2D interseccion (Recta2D recta) throws
Exception2D {
.... throw new Exception2D(“Rectas paralelas o “
+ “coincidentes”);
....
Mónica E. García García Feb ‘07 17

También podría gustarte