Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIÓN I
Lenguaje de Programación I 3
Contenido
• Excepciones
• Propagación de excepciones
• Jerarquía de excepciones
• Ejercicios de Aplicación
Lenguaje de Programación I 4
Excepciones
¿Qué es una excepción?
Ocurrencia o situación anómala que altera el
flujo normal de un programa.
¿Cómo controlarlo?
Utilizando el mecanismo “gestor de excepciones de java”
Lenguaje de Programación I 5
Sentencias try -
catch
La palabra try es usada para agrupar el bloque de
código susceptible de una operación riesgosa.
Una o más cláusulas catch están asociadas a una
excepción específica o grupo de excepciones.
Sentencias try -
//Bloque decatch
código que no es riesgoso
try{
//Bloque de código que podría lanzar alguna excepción
} catch(MiPrimeraExcepcion){
//Bloque de código que gestiona la excepción
} catch(MiSegundaExcepcion){
//Bloque de código que gestiona la excepción
}
//Bloque de código que no es riesgoso
Lenguaje de Programación I 7
Funcionamiento del try -
catch
No se produce la excepción Se produce la excepción
try{ try{
……....……..…… ……....……..……
……....……..…… ……....……..……
} }
……....……….…… ……....…..…..……
……....……….…… ……......……..……
Lenguaje de Programación I 8
A trabajar con
Eclipse
Ejercicio1
Lenguaje de Programación I 9
Cláusula finally
El uso del bloque finally nos permite definir una o
varias instrucciones cuya ejecución esta garantizada,
independientemente de que ocurra o no una
excepción dentro del bloque try. Sirve para limpieza
del estado de los objetos afectados o para liberar
recursos externos.
Cláusula
finally
try{ try{
//Hacer algo //Hacer algo
} }
finally { catch(SomeException e){
//Clean up //Do exception handling
} }
finally {
Apropiado para asignar //Clean up
valores a objetos que
deben ser inicializados }
ocurra o no una excepción.
Lenguaje de Programación I 11
A trabajar con
Eclipse
Ejercicio2
Lenguaje de Programación I 12
Propagación de excepciones
Pila de llamadas
Supongamos que en el 3er.
Último método invocado método se lanzó una excepción...
Si la excepción no es atrapada,
Llamada de 3er. método caerá al siguiente nivel
FIN
Lenguaje de Programación I 14
A trabajar con
Eclipse
Ejercicio3
Lenguaje de Programación I 15
Propagación de excepciones –
esquema 2
try{
……………………
metodoA(…)
metodoA(…)
…………………… try{
} ……………………
……………………
catch(TipoExcepcion e){ }
//Gestiona exception catch(TipoExcepcion e){
} //Gestiona exception
throw e;
FIN }
Propagación explícita
Lenguaje de Programación I 16
A trabajar con
Eclipse
Ejercicio4
Lenguaje de Programación I 17
Jerarquía de
excepciones
Object Proporciona métodos para
No causadas por gestores de transacciones
errores del programa
No es necesario Causada porque algún
gestionarla Throwable recurso o condición no
está disponible.
Error Exception
AWTError IOException
LinkageError SQLException
ThreadDeath AWTException
VirtualMachineError RuntimeException
No Controladas Controladas
…
Lenguaje de Programación I 18
Clases derivadas de
RuntimeException
RuntimeException
ArithmeticException
ArrayStoreException
ClassCastException
IllegalMonitorStateException
NegativeArraySizeException
NullPointerException
SecurityException
StringIndexOutOfBoundsException
IndexOutOfBoundsException ArrayIndexOutOfBoundsException
IllegalArgumentExceptionException NumberFormatException
IllegalThreadStateException
Lenguaje de Programación I 19
Clases derivadas de IOException
IOException
EOFException
FileNotFoundException
StreamCorruptedException
InterruptedIOException
MalformedURLException
.
.
.
Lenguaje de Programación I 20
Funcionamiento de varias
excepciones
Correcto: de < a > jerarquía Incorrecto de > a < jerarquía
try{ try{
……………………. …………………….
……………………. …………………….
} }
Lenguaje de Programación I 21
A trabajar con
Eclipse
Ejercicios varios
Lenguaje de Programación I 22