T12 Manejo de Excepciones
T12 Manejo de Excepciones
T12 Manejo de Excepciones
Excepciones -2-
2
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 1 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Excepciones -3-
• Algunas de las excepciones son causadas por errores del usuario, otras por
error del programador, y otras por los recursos físicos que han fallado de
alguna manera.
• Las excepciones son manejadas por código fuera del flujo normal de control
del programa.
Excepciones -4-
4
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 2 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Este bloque de código también desea acceder al elemento de índice 5 que no tiene ninguna referencia,
pero a diferencia del anterior, este suceso ha sido previsto y se muestra un mensaje al usuario
indicando que no hay elementos en el arreglo y la ejecución del programa termina de manera natural.
6
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 3 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
8
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 4 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
10
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 5 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Clasificación de Excepciones - 11 -
• No verificadas en compilación:
Situaciones inesperadas de programación difíciles de
prever.
• Verificadas en compilación:
Situaciones predecibles y que pueden ser controladas.
11
Clasificación de Excepciones - 12 -
12
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 6 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Clasificación de Excepciones - 13 -
13
Clasificación de Excepciones - 14 -
14
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 7 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Clasificación de Excepciones - 15 -
15
Manejo de Excepciones - 16 -
16
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 8 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Manejo de Excepciones - 17 -
1. Bloque try…catch
• Se utiliza para capturar las excepciones que se han podido
producir en el bloque de código delimitado por try y catch.
• En cuanto se produce la excepción, la ejecución del bloque try,
que la contiene, termina. La cláusula catch recibe como
argumento un objeto Throwable.
• try: Es el bloque de código donde se prevé que se genere una
excepción. El bloque try tiene que ir seguido, al menos, por una
cláusula catch o una cláusula finally.
• catch: Es el código que se ejecuta cuando se produce la
excepción. No hay código alguno entre un bloque try y un bloque
catch, ni entre bloques catch.
17
Manejo de Excepciones - 18 -
• Flujo de ejecución:
Sin excepciones : 1->2->4
Con una excepción en el bloque 2 : 1->2*->3->4
Con una excepción en el bloque 1 : 1*
18
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 9 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Manejo de Excepciones - 19 -
19
Manejo de Excepciones - 20 -
• Flujo de ejecución:
Sin excepciones : 1->2->5
Excepción de tipo aritmético en el bloque 2 : 1->2*->3->5
Acceso a un objeto nulo (null) en el bloque 2 : 1->2*->4->5
Excepción de otro tipo diferente en el bloque 2 : 1->2*
20
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 10 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Manejo de Excepciones - 21 -
3. La cláusula finally
• En ocasiones, nos interesa ejecutar un fragmento de código
independiente de si se produce o no una excepción (por ejemplo,
cerrar un archivo que estemos manipulando o una conexión a
una fuente de datos).
21
Manejo de Excepciones - 22 -
• Flujo de ejecución:
Sin excepciones : 1->2->4->5
Excepción de tipo aritmético en el bloque 2 : 1->2*->3->4->5
Excepción de otro tipo diferente en el bloque 2 : 1->2*->4
22
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 11 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Manejo de Excepciones - 23 -
try {
// Sentencias que pueden generar la excepción
} catch(ExcepcionCapturada referencia) {
// Sentencias que responden a la excepción
} finally {
// Sentencias que se ejecutan siempre
}
23
Manejo de Excepciones - 24 -
try {
//Sentencias
} catch(ExcepcionCapturada referencia) {
//Sentencias
} try {
//Sentencias
} finally {
//Sentencias
}
24
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 12 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Manejo de Excepciones - 25 -
try {
//Sentencias
} catch(ExcepcionCapturada1 referencia) {
//Sentencias
} catch(ExcepcionCapturada2 referencia) {
//Sentencias
} catch(ExcepcionCapturada3 referencia) {
//Sentencias
} finally {
//Sentencias
}
25
Manejo de Excepciones - 26 -
try {
//Sentencias
} catch(ExcepcionCapturada1 referencia) {
//Sentencias
} catch(ExcepcionCapturada2 referencia) {
//Sentencias
} catch(ExcepcionCapturada3 referencia) {
//Sentencias
}
26
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 13 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Ejemplo:
27
28
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 14 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
29
30
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 15 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Excepciones personalizadas - 31 -
• En general, se creará un nuevo tipo de excepción cuando se requiera manejar un determinado tipo
de situación excepcional no contemplada por las excepciones proporcionadas por la biblioteca de
Java.
• Todos los tipos de excepción se corresponden con una clase derivada de Throwable, clase raíz de la
jerarquía de clases de excepciones en Java.
• El programador puede definir sus propias clases de excepciones, definiendo una clase que herede
de Throwable o generalmente de Exception.
31
Excepciones personalizadas - 32 -
public MiException() { }
32
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 16 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas
Excepciones personalizadas - 33 -
33
Resumen - 34 -
34
Curso: Programación Orientada a Objetos I Tema: Manejo de Excepciones.
Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 17 -