Está en la página 1de 23

LENGUAJE DE

PROGRAMACIÓN I

Los profesores del Curso


Objetivos
• Saber que es una excepción.
• Trabajar con la sentencia try catch para controlar
excepciones dentro de un aplicativo.
• Usar las diferentes excepciones que puede ocurrir
para no interrumpir nuestro aplicativo.

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.

¿Qué sucede cuando se produce esa situación?


En memoria, se crea un objeto que almacena
información acerca del tipo de excepción que se ha
producido y el lugar donde ha ocurrido.

¿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{
……....……..…… ……....……..……
……....……..…… ……....……..……
} }

catch(TipoExcepcion e){ catch(TipoExcepcion e){


……....……..…… ……....……..……
……....……..…… ……....……..……
} }

……....……….…… ……....…..…..……
……....……….…… ……......……..……
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

Llamada de 2do. método Este proceso se conoce como


propagación de excepciones
Llamada de 1er. método
Última opción para atrapar la
Método principal excepción. En caso de no
hacerlo, se detiene el programa.
Método iniciado por el programa
Lenguaje de Programación I 13
Propagación de excepciones –
esquema 1
try{
……………………
metodoA(…)
metodoA(…)
…………………… try{
} ……………………
……………………
catch(TipoExcepcion e){ }
//Gestiona exception
} catch(TipoExcepcion e){
//Gestiona exception
}

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{
……………………. …………………….
……………………. …………………….
} }

catch(FileNotFoundExcepcion e){ catch(IOExcepcion e){


……………………. …………………….
……………………. …………………….
} }

catch(IOExcepcion e){ catch(FileNotFoundExcepcion e){


……………………. …………………….
……………………. …………………….
} }

Lenguaje de Programación I 21
A trabajar con
Eclipse

Ejercicios varios

Lenguaje de Programación I 22

También podría gustarte