Publicado el 31 de Julio del 2017
570 visualizaciones desde el 31 de Julio del 2017
116,1 KB
9 paginas
Creado hace 18a (18/04/2007)
Excepciones
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y Computación
Universidad Complutense de Madrid
18 de abril de 2007
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Excepciones
¿Qué es una excepción? I
Excepción
Es un evento que ocurre durante la ejecución de un programa e
interrumpe su ejecución normal
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Excepciones
¿Qué es una excepción? II
Cuando se produce una excepción se puede
Capturarla y arreglar la situación
Transmitir el error al procedimiento llamante
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Excepciones
Capturar/Transmitir una excepción
public static int leeInt () throws I O E x c e p t i o n
{
try
{
return I n t e g e r . p a r s e I n t ( t e c l a d o . r e a d L i n e ());
}
catch ( N u m b e r F o r m a t E x c e p t i o n e ) {
System . out . p r i n t l n ( " Número incorrecto , dámelo otra vez . " );
return leeInt ();
}
}
1
2
3
4
5
6
7
8
9
El método readLine puede lanzar java.io.IOException
El método parseInt puede lanzar
java.lang.NumberFormatException
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Excepciones
Instrucción try/catch/finally
try {
codigo
} catch (Excepcion1e1 ) {
codigo1
} catch (Excepcion2e2 ) {
codigo2
}
. . . . . . . . . .
} f i n a l l y {
}
1
2
3
4
5
6
7
8
9
10
11
Intenta ejecutar el código.
Si se produce una excepción de clase Excepcionk se ejecuta el
código codigok
El código en finally se ejecuta al final en cualquier caso.
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Excepciones
Instrucción try/catch/finally
public void w r i t e L i s t () {
P r i n t W r i t e r out = null ;
try {
System . out . p r i n t l n ( " E n t e r i n g try s t a t e m e n t " );
out = new P r i n t W r i t e r (
new F i l e W r i t e r ( " O u t F i l e . txt " ));
for ( int i = 0; i < SIZE ; i ++)
out . p r i n t l n ( " Value at : " + i + " = "
+ vector . e l e m e n t A t ( i ));
} catch ( A r r a y I n d e x O u t O f B o u n d s E x c e p t i o n e ) {
System . err . p r i n t l n ( " Caught "
+ " A r r a y I n d e x O u t O f B o u n d s E x c e p t i o n : "
+
e . g e t M e s s a g e ());
} catch ( I O E x c e p t i o n e ) {
System . err . p r i n t l n ( " Caught I O E x c e p t i o n : "
+
e . g e t M e s s a g e ());
} f i n a l l y {
if ( out != null ) {
System . out . p r i n t l n ( " C l o s i n g P r i n t W r i t e r " );
out . close ();
}
else {
System . out . p r i n t l n ( " P r i n t W r i t e r not open " );
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Excepciones
Declarar/lanzar excepciones
Requisito captura o declarar
Si una instrucción en un método puede lanzar una excepción se
debe
Capturar con instrucción catch
El método debe declarar (throws) que la puede lanzar.
Excepciones normales deben cumplir el requisito
Errores errores externos (fallos de hardaware). No necesitan
cumplir el requisito.
Excepciones Runtime errores internos que se debe a fallos, usos
incorrectos de una API. No necesitan cumplir el
requisito.
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Excepciones
Lanzar excepciones
public void a n y a d i r D i a s ( int inc ) {
int d = d i a s D e s d e I n i c i o + inc ;
if (d <0) throw new F e c h a F u e r a D e R a n g o ( " Día a n t e r o r al p e r m i t i d o " );
d i a s D e s d e I n i c i o = d ;
}
1
2
3
4
5
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Excepciones
Escribiendo excepciones
p a c k a g e fecha ;
public class F e c h a F u e r a D e R a n g o e x t e n d s R u n t i m e E x c e p t i o n {
public F e c h a F u e r a D e R a n g o ( String s ) {
super ( s );
}
}
1
2
3
4
5
6
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Excepciones
Comentarios de: Excepciones (0)
No hay comentarios