SlideShare una empresa de Scribd logo
Prof. Renny Batista Programación IIIOctubre, 2015
Excepciones
La filosofía básica de Java es que "el código mal formado
no se ejecutará".
Excepción
¿Qué es una excepción?
La palabra excepción indica una irregularidad en el software que se inicia en
alguna sentencia del código al encontrar una condición anormal; no se debe
confundir con una excepción hardware.
Mediante la captura de excepciones, Java proporciona un mecanismo que permite
al programa sobreponerse a estas situaciones, pudiendo el programador decidir las
acciones a realizar para cada tipo de excepción que pueda ocurrir.
Error
¿Qué es un error?
Un error representa una situación anormal irreversible, como por ejemplo un fallo de
la maquina virtual. Por regla general, un programa no deberá intentar recuperarse de
un error, dado que son situaciones que se escapan al control del programador.
Cada tipo de excepción está representada por una subclase de Exception, mientras
que los errores son subclases de Error. Ambas clases (Exception y Error), son
subclases de Throwable.
Object
ErrorException
Throwable
Excepciones Errores
Excepciones y condiciones anormales
Como se mencionó, las excepciones son eventos anormales que ocurren
durante la ejecución del programa, a continuación tenemos algunos ejemplos
que lanzan excepciones:
Cuando un número es dividido entre cero.
Cuando se accede a un elemento de un arreglo que este fuera del límite
del arreglo.
Cuando existe una condición de desborde (overflow) durante la asignación
de valores a variables numéricas.
Cuando un recurso es requerido por la aplicación y no está disponible.
Cuando se requiere de un archivo para lectura, y el mismo no se encuentra
disponible en el sistema de archivos.
Cuando la aplicación accede a recursos del sistema sin autorización.
Secuencias de acciones cuando se produce una excepción
El manejador de
excepciones recibe la
excepción
Analiza la naturaleza de
la excepción
Crea un “objeto exception”
apropiado a través del manejador
Prepara el “objeto exception” para ser
manejado por el sistema en tiempo de
ejecución
Sistema de
tiempo de
ejecución
Localiza en la pila de llamadas la entrada del
método en el cual ocurrió al condición de error
¿La excepción
lanzada es de
igual al tipo a
la manejada?
Error
Localiza el manejador de excepciones
apropiado para esta excepción
Preparar para capturar la
excepción
Se desciende en la pila de llamadas para
localizar el próximo manejador
¿Hay más
manejadore
s en la pila?
Detiene el
sistema en
tiempo de
ejecución
Igual
Diferente
Si
No
Clases de Excepción
Al producirse una excepción en un programa, se crea un objeto de la subclase de Exception a
la que pertenece la excepción.
Java.lang-Exceptions
http://gallerily.com/java+exceptions+tree?image=867525489
Tipos de Excepciones
Desde el punto de vista del tratamiento de una excepción dentro de un
programa, todas las clases de excepción se dividen en dos grandes grupos:
Excepciones marcadas
Excepciones no marcadas
Excepciones Marcadas
Son aquellas cuya captura es obligatoria. Normalmente, este tipo de
excepciones se producen al invocar a ciertos métodos de determinadas
clases y son lanzadas desde el interior de dichos métodos como
consecuencia de algún fallo durante la ejecución de los mismos.
Todas las clases de excepciones, salvo RuntimeException y sus subclases,
pertenecen a este tipo.
Declaración de excepciones marcadas
Los métodos que pueden provocar excepciones marcadas deben declarar
estas en la definición del método.
Para declarar una excepción se utiliza la palabra throws, seguida de la lista de
excepciones que el método puede provocar.
public class Nombre_Clase {
public String readLine() throws IOException {
//Código del método
}
public void Service() throws ServletException, IOException {
//Código del método
}
}
Excepciones que puede
“lanzar” el método
Excepciones no marcadas
Pertenecen a este grupo todas las excepciones de tiempo de ejecución, es decir,
RuntimeException y todas sus clases.
No es obligatorio capturar dentro de un programa Java una excepción no
marcada, el motivo es que gran parte de ellas, se producen como consecuencias
de una mala programación, por lo que la solución está en evitar que se
produzcan.
Excepciones no marcadas
Instrucción que genera una
excepción (División por cero)
Volcado de pila
(programa abortado)
Datos de la excepción
lanzada
Captura de excepciones
Los bloques try…catch…finally
Las instrucciones try, catch y finally proporcionan una forma elegante y estructurada
de capturar excepciones dentro de un programa Java, evitando la utilización de
instrucciones de control que dificultarían la lectura del código y lo harían más
propenso a errores.
try {
//Instrucciones donde se puede producir excepciones
} catch (Tipo_de_excepcion Argumento) {
//Tratamiento excepcion 1
} catch (Tipo_de_excepcion Argumento) {
//Tratamiento excepcion 2
} finally {
//Instrucciones de ultima ejecución
}
Lista de sentencias que
procesan la excepción
Tipo de excepción
a procesar
Nombre del objeto excepción
transferido al manejador
Captura de excepciones
El bloque try delimita aquella o aquellas instrucciones dónde se puede producir una
excepción, Cuando esto sucede, el control del programa se transfiere al bloque catch
definido para el tipo de excepción que se ha producido.
Un bloque catch define las instrucciones que deberán ejecutarse en caso de que se
produzca un determinado tipo de excepción. Sobre la utilización de los bloques catch se
debe tener en cuenta lo siguiente:
 Se pueden definir tantos bloques catch como se considere necesario. Cada bloque catch servirá
para tratar un determinado tipo de excepción, no pudiendo haber dos o más catch que tengan
declarada la misma clase de excepción.
 Un bloque catch sirve para capturar cualquier excepción que se corresponda con el tipo
declarado o cualquiera de sus subclases.
 Aunque haya varios posibles catch que pueden capturar una excepción, solo uno de ellos será
ejecutado cuando esta se produzca.
 Tras la ejecución de un catch, el control del programa nunca se devuelve al lugar donde se ha
producido la excepción.
 En el caso de que existan varios catch cuyas excepciones estén relacionadas por la herencia, los
catch mas específicos deben estar situados por delante de los más genéricos.
Captura de excepciones
finally
Su uso es opcional. El bloque finally se ejecutará tanto si se produce una excepción
como si no, garantizando así que un determinado conjunto de instrucciones
siempre sean ejecutada.
Si se produce una excepción en try, el bloque finally se ejecutará después del catch
para tratamiento de la excepción. En caso de que no hubiera ningún catch para el
tratamiento de la excepción producida, el bloque finally se ejecutaría antes de
propagar la excepción.
Si no se produce excepción alguna en el interior del try, el bloque finally se
ejecutará tras la última instrucción del try.
Se usa básicamente para tareas de limpieza, como cerrar archivos , conexiones a
bases de datos y liberar recursos.
public class Principal {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
imprime(br);
} catch ( IOException e ) {
System.out.println("Fallo de lectura..!");
}
}
static void imprime(BufferedReader bf) throws IOException {
String n = bf.readLine(); //Puede provocar una excepción
System.out.println(n);
}
}
Propagación de una excepción
En el caso de que no se tenga previsto ninguna acción particular para el tratamiento de
una determinada excepción, es posible propagar la excepción sin necesidad de capturarla,
dejando que sean otras partes del programa las encargadas de definir las acciones para su
tratamiento (throws).
Declara la excepción para
que sea propagada
Es capturada aquí, al invocar el método imprime
Propagación de una excepción
La excepción no es
tratada y se lanza al
método que llamo al
método actual
1 2
La excepción no es tratada por el
método main() y el programa aborta
su ejecución
3
La sentencia lanza una excepción
Excepción no es
tratada y se lanza a la
convocatoria del
método
Métodos para el control de una excepción
Los métodos más importantes son:
String getMessage(). Devuelve un mensaje de texto asociado a la excepción,
dependiendo del tipo de objeto de excepción sobre el que se aplique.
void printStackTrace(). Envía a la consola el volcado de la pila asociado a la
excepción. Su uso puede ser muy útil durante la fase de desarrollo de la
aplicación.
void printStackTrace(PrintStream s). Esta versión permite enviar el volcado
de pila a un objeto PrintStream cualquiera, por ejemplo, un archivo log.
Bibliografías
Martín, Antonio. Programador Certificado Java 2. Curso Práctico. Editorial
RA-MA. 2da Edición.
Joyanes L., Zahonero I. Programación en Java 6. Algoritmos, programación
orientada a objetos e interfaz gráfica de usuarios. McGRAW-HILL, 1ra Edición.

Más contenido relacionado

La actualidad más candente

Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepcionesJuan Mancilla
 
Procesadores superescalares
Procesadores superescalaresProcesadores superescalares
Procesadores superescalares
DiskCom - Negocios
 
Tema 11 expresiones regulares en java por gio
Tema 11   expresiones regulares en java por gioTema 11   expresiones regulares en java por gio
Tema 11 expresiones regulares en java por gioRobert Wolf
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesSergio Sanchez
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
Angel Vázquez Patiño
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
K Manuel TN
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASE
Jesús Cedeño
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamicagusolis93
 
Diagramas de estado
Diagramas de estadoDiagramas de estado
Diagramas de estado
Rene Guaman-Quinche
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenasJuan Durango
 
Elementos orientados al flujo
Elementos orientados al flujoElementos orientados al flujo
Elementos orientados al flujo
Alumic S.A
 
UML Café
UML Café UML Café
modelo relacional
modelo relacionalmodelo relacional
modelo relacionalponxo90
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
Juan Gerardo Moreno Florentino
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
Anel Sosa
 
234632213 sistema-experto-para-el-diagnostico-de-fallas-de-computadora-pdf
234632213 sistema-experto-para-el-diagnostico-de-fallas-de-computadora-pdf234632213 sistema-experto-para-el-diagnostico-de-fallas-de-computadora-pdf
234632213 sistema-experto-para-el-diagnostico-de-fallas-de-computadora-pdf
Diego Yacelga Ortiz
 

La actualidad más candente (20)

Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepciones
 
Colas
ColasColas
Colas
 
Procesadores superescalares
Procesadores superescalaresProcesadores superescalares
Procesadores superescalares
 
Tema 11 expresiones regulares en java por gio
Tema 11   expresiones regulares en java por gioTema 11   expresiones regulares en java por gio
Tema 11 expresiones regulares en java por gio
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De Clases
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
8 introduccion colecciones
8 introduccion colecciones8 introduccion colecciones
8 introduccion colecciones
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASE
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Diagramas de estado
Diagramas de estadoDiagramas de estado
Diagramas de estado
 
5.manejo de excepciones
5.manejo de excepciones5.manejo de excepciones
5.manejo de excepciones
 
Tipos de excepciones
Tipos de excepcionesTipos de excepciones
Tipos de excepciones
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 
Elementos orientados al flujo
Elementos orientados al flujoElementos orientados al flujo
Elementos orientados al flujo
 
UML Café
UML Café UML Café
UML Café
 
modelo relacional
modelo relacionalmodelo relacional
modelo relacional
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
234632213 sistema-experto-para-el-diagnostico-de-fallas-de-computadora-pdf
234632213 sistema-experto-para-el-diagnostico-de-fallas-de-computadora-pdf234632213 sistema-experto-para-el-diagnostico-de-fallas-de-computadora-pdf
234632213 sistema-experto-para-el-diagnostico-de-fallas-de-computadora-pdf
 

Destacado

Diseño adaptativo y responsive
Diseño adaptativo y responsiveDiseño adaptativo y responsive
Diseño adaptativo y responsive
Renny Batista
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
Renny Batista
 
Fundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIFundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema II
Renny Batista
 
Html - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasHtml - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y Listas
Renny Batista
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
Renny Batista
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
Renny Batista
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
Renny Batista
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
Renny Batista
 
Java colecciones
Java coleccionesJava colecciones
Java colecciones
Renny Batista
 
Css - Tema 2
Css -  Tema 2Css -  Tema 2
Css - Tema 2
Renny Batista
 
Html - Tema 1
Html - Tema 1Html - Tema 1
Html - Tema 1
Renny Batista
 
Html Tema 4 - Formularios
Html Tema 4 - FormulariosHtml Tema 4 - Formularios
Html Tema 4 - Formularios
Renny Batista
 
Excepciones
ExcepcionesExcepciones
Excepcionesrilara
 
Exceptions (2)
Exceptions (2)Exceptions (2)
Exceptions (2)
jbersosa
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
Carlos Anibal Riascos Hurtado
 
Curso Java Inicial 7 Excepciones
Curso Java Inicial   7 ExcepcionesCurso Java Inicial   7 Excepciones
Curso Java Inicial 7 Excepciones
Emilio Aviles Avila
 
Java exceptions
Java exceptionsJava exceptions
Java exceptions
Deli_amor
 

Destacado (20)

Diseño adaptativo y responsive
Diseño adaptativo y responsiveDiseño adaptativo y responsive
Diseño adaptativo y responsive
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Fundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIFundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema II
 
Html - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y ListasHtml - Tema 2: Enlaces, Imágenes y Listas
Html - Tema 2: Enlaces, Imágenes y Listas
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
 
JQuery-Tema 1
JQuery-Tema 1JQuery-Tema 1
JQuery-Tema 1
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Java colecciones
Java coleccionesJava colecciones
Java colecciones
 
Css - Tema 2
Css -  Tema 2Css -  Tema 2
Css - Tema 2
 
Html - Tema 1
Html - Tema 1Html - Tema 1
Html - Tema 1
 
Html Tema 4 - Formularios
Html Tema 4 - FormulariosHtml Tema 4 - Formularios
Html Tema 4 - Formularios
 
Taller MVC
Taller MVCTaller MVC
Taller MVC
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Exceptions (2)
Exceptions (2)Exceptions (2)
Exceptions (2)
 
Gestion de errores en java
Gestion de errores en javaGestion de errores en java
Gestion de errores en java
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Curso Java Inicial 7 Excepciones
Curso Java Inicial   7 ExcepcionesCurso Java Inicial   7 Excepciones
Curso Java Inicial 7 Excepciones
 
Unidad 5: Excepciones Ejercicio 1
Unidad 5: Excepciones Ejercicio 1Unidad 5: Excepciones Ejercicio 1
Unidad 5: Excepciones Ejercicio 1
 
Java exceptions
Java exceptionsJava exceptions
Java exceptions
 

Similar a 05 java excepciones

excepciones_java en www.fiec.espol.edu.ec
excepciones_java  en www.fiec.espol.edu.ecexcepciones_java  en www.fiec.espol.edu.ec
excepciones_java en www.fiec.espol.edu.ec
Silvana Vargas
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
jbersosa
 
Capitulo II
Capitulo IICapitulo II
Capitulo II
Luis Villavicencio
 
Java5
Java5Java5
Java5
jbersosa
 
Lab excepciones
Lab excepcionesLab excepciones
Lab excepciones
Andres Herrera Rodriguez
 
Excepciones
ExcepcionesExcepciones
Excepcioneskattybe
 
Jyoc java-cap12 excepciones
Jyoc java-cap12 excepcionesJyoc java-cap12 excepciones
Jyoc java-cap12 excepciones
Jyoc X
 
Excepciones
ExcepcionesExcepciones
Excepciones
Ronny Parra
 
Excepciones
ExcepcionesExcepciones
Excepciones
ale8819
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en javajent46
 
3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string
Jacqui Venegas
 
3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string
Jacqui Venegas
 
Manejo Estructurado De Excepciones
Manejo Estructurado De ExcepcionesManejo Estructurado De Excepciones
Manejo Estructurado De Excepciones
Marvin Romero
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
innovalabcun
 
Java oo tema09_excepciones
Java oo tema09_excepcionesJava oo tema09_excepciones
Java oo tema09_excepciones
Eric Gustavo Coronel Castillo
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
www.mentoringit.com.mx
 
Tema 4 excepciones por gio
Tema 4   excepciones por gioTema 4   excepciones por gio
Tema 4 excepciones por gioRobert Wolf
 
Gestión de errores en Java
Gestión de errores en JavaGestión de errores en Java
Gestión de errores en Java
eccutpl
 

Similar a 05 java excepciones (20)

excepciones_java en www.fiec.espol.edu.ec
excepciones_java  en www.fiec.espol.edu.ecexcepciones_java  en www.fiec.espol.edu.ec
excepciones_java en www.fiec.espol.edu.ec
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
 
Capitulo II
Capitulo IICapitulo II
Capitulo II
 
Java5
Java5Java5
Java5
 
Lab excepciones
Lab excepcionesLab excepciones
Lab excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Jyoc java-cap12 excepciones
Jyoc java-cap12 excepcionesJyoc java-cap12 excepciones
Jyoc java-cap12 excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Resumen
ResumenResumen
Resumen
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string
 
3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string
 
Manejo Estructurado De Excepciones
Manejo Estructurado De ExcepcionesManejo Estructurado De Excepciones
Manejo Estructurado De Excepciones
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
Java oo tema09_excepciones
Java oo tema09_excepcionesJava oo tema09_excepciones
Java oo tema09_excepciones
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
 
Tema 4 excepciones por gio
Tema 4   excepciones por gioTema 4   excepciones por gio
Tema 4 excepciones por gio
 
Resumen claudia u5
Resumen claudia u5Resumen claudia u5
Resumen claudia u5
 
Gestión de errores en Java
Gestión de errores en JavaGestión de errores en Java
Gestión de errores en Java
 

Más de Renny Batista

Css - Tema 1
Css - Tema 1Css - Tema 1
Css - Tema 1
Renny Batista
 
Html - Tema 3
Html - Tema 3Html - Tema 3
Html - Tema 3
Renny Batista
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
Renny Batista
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de Datos
Renny Batista
 
Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java script
Renny Batista
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
Renny Batista
 

Más de Renny Batista (6)

Css - Tema 1
Css - Tema 1Css - Tema 1
Css - Tema 1
 
Html - Tema 3
Html - Tema 3Html - Tema 3
Html - Tema 3
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de Datos
 
Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java script
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
 

Último

Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
YasneidyGonzalez
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Monseespinoza6
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
LilianaRivera778668
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
ClaudiaAlcondeViadez
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
FelixCamachoGuzman
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
AracelidelRocioOrdez
 

Último (20)

Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
 

05 java excepciones

  • 1. Prof. Renny Batista Programación IIIOctubre, 2015 Excepciones La filosofía básica de Java es que "el código mal formado no se ejecutará".
  • 2. Excepción ¿Qué es una excepción? La palabra excepción indica una irregularidad en el software que se inicia en alguna sentencia del código al encontrar una condición anormal; no se debe confundir con una excepción hardware. Mediante la captura de excepciones, Java proporciona un mecanismo que permite al programa sobreponerse a estas situaciones, pudiendo el programador decidir las acciones a realizar para cada tipo de excepción que pueda ocurrir.
  • 3. Error ¿Qué es un error? Un error representa una situación anormal irreversible, como por ejemplo un fallo de la maquina virtual. Por regla general, un programa no deberá intentar recuperarse de un error, dado que son situaciones que se escapan al control del programador. Cada tipo de excepción está representada por una subclase de Exception, mientras que los errores son subclases de Error. Ambas clases (Exception y Error), son subclases de Throwable. Object ErrorException Throwable Excepciones Errores
  • 4. Excepciones y condiciones anormales Como se mencionó, las excepciones son eventos anormales que ocurren durante la ejecución del programa, a continuación tenemos algunos ejemplos que lanzan excepciones: Cuando un número es dividido entre cero. Cuando se accede a un elemento de un arreglo que este fuera del límite del arreglo. Cuando existe una condición de desborde (overflow) durante la asignación de valores a variables numéricas. Cuando un recurso es requerido por la aplicación y no está disponible. Cuando se requiere de un archivo para lectura, y el mismo no se encuentra disponible en el sistema de archivos. Cuando la aplicación accede a recursos del sistema sin autorización.
  • 5. Secuencias de acciones cuando se produce una excepción El manejador de excepciones recibe la excepción Analiza la naturaleza de la excepción Crea un “objeto exception” apropiado a través del manejador Prepara el “objeto exception” para ser manejado por el sistema en tiempo de ejecución Sistema de tiempo de ejecución Localiza en la pila de llamadas la entrada del método en el cual ocurrió al condición de error ¿La excepción lanzada es de igual al tipo a la manejada? Error Localiza el manejador de excepciones apropiado para esta excepción Preparar para capturar la excepción Se desciende en la pila de llamadas para localizar el próximo manejador ¿Hay más manejadore s en la pila? Detiene el sistema en tiempo de ejecución Igual Diferente Si No
  • 6. Clases de Excepción Al producirse una excepción en un programa, se crea un objeto de la subclase de Exception a la que pertenece la excepción. Java.lang-Exceptions http://gallerily.com/java+exceptions+tree?image=867525489
  • 7. Tipos de Excepciones Desde el punto de vista del tratamiento de una excepción dentro de un programa, todas las clases de excepción se dividen en dos grandes grupos: Excepciones marcadas Excepciones no marcadas
  • 8. Excepciones Marcadas Son aquellas cuya captura es obligatoria. Normalmente, este tipo de excepciones se producen al invocar a ciertos métodos de determinadas clases y son lanzadas desde el interior de dichos métodos como consecuencia de algún fallo durante la ejecución de los mismos. Todas las clases de excepciones, salvo RuntimeException y sus subclases, pertenecen a este tipo.
  • 9. Declaración de excepciones marcadas Los métodos que pueden provocar excepciones marcadas deben declarar estas en la definición del método. Para declarar una excepción se utiliza la palabra throws, seguida de la lista de excepciones que el método puede provocar. public class Nombre_Clase { public String readLine() throws IOException { //Código del método } public void Service() throws ServletException, IOException { //Código del método } } Excepciones que puede “lanzar” el método
  • 10. Excepciones no marcadas Pertenecen a este grupo todas las excepciones de tiempo de ejecución, es decir, RuntimeException y todas sus clases. No es obligatorio capturar dentro de un programa Java una excepción no marcada, el motivo es que gran parte de ellas, se producen como consecuencias de una mala programación, por lo que la solución está en evitar que se produzcan.
  • 11. Excepciones no marcadas Instrucción que genera una excepción (División por cero) Volcado de pila (programa abortado) Datos de la excepción lanzada
  • 12. Captura de excepciones Los bloques try…catch…finally Las instrucciones try, catch y finally proporcionan una forma elegante y estructurada de capturar excepciones dentro de un programa Java, evitando la utilización de instrucciones de control que dificultarían la lectura del código y lo harían más propenso a errores. try { //Instrucciones donde se puede producir excepciones } catch (Tipo_de_excepcion Argumento) { //Tratamiento excepcion 1 } catch (Tipo_de_excepcion Argumento) { //Tratamiento excepcion 2 } finally { //Instrucciones de ultima ejecución } Lista de sentencias que procesan la excepción Tipo de excepción a procesar Nombre del objeto excepción transferido al manejador
  • 13. Captura de excepciones El bloque try delimita aquella o aquellas instrucciones dónde se puede producir una excepción, Cuando esto sucede, el control del programa se transfiere al bloque catch definido para el tipo de excepción que se ha producido. Un bloque catch define las instrucciones que deberán ejecutarse en caso de que se produzca un determinado tipo de excepción. Sobre la utilización de los bloques catch se debe tener en cuenta lo siguiente:  Se pueden definir tantos bloques catch como se considere necesario. Cada bloque catch servirá para tratar un determinado tipo de excepción, no pudiendo haber dos o más catch que tengan declarada la misma clase de excepción.  Un bloque catch sirve para capturar cualquier excepción que se corresponda con el tipo declarado o cualquiera de sus subclases.  Aunque haya varios posibles catch que pueden capturar una excepción, solo uno de ellos será ejecutado cuando esta se produzca.  Tras la ejecución de un catch, el control del programa nunca se devuelve al lugar donde se ha producido la excepción.  En el caso de que existan varios catch cuyas excepciones estén relacionadas por la herencia, los catch mas específicos deben estar situados por delante de los más genéricos.
  • 14. Captura de excepciones finally Su uso es opcional. El bloque finally se ejecutará tanto si se produce una excepción como si no, garantizando así que un determinado conjunto de instrucciones siempre sean ejecutada. Si se produce una excepción en try, el bloque finally se ejecutará después del catch para tratamiento de la excepción. En caso de que no hubiera ningún catch para el tratamiento de la excepción producida, el bloque finally se ejecutaría antes de propagar la excepción. Si no se produce excepción alguna en el interior del try, el bloque finally se ejecutará tras la última instrucción del try. Se usa básicamente para tareas de limpieza, como cerrar archivos , conexiones a bases de datos y liberar recursos.
  • 15. public class Principal { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { imprime(br); } catch ( IOException e ) { System.out.println("Fallo de lectura..!"); } } static void imprime(BufferedReader bf) throws IOException { String n = bf.readLine(); //Puede provocar una excepción System.out.println(n); } } Propagación de una excepción En el caso de que no se tenga previsto ninguna acción particular para el tratamiento de una determinada excepción, es posible propagar la excepción sin necesidad de capturarla, dejando que sean otras partes del programa las encargadas de definir las acciones para su tratamiento (throws). Declara la excepción para que sea propagada Es capturada aquí, al invocar el método imprime
  • 16. Propagación de una excepción La excepción no es tratada y se lanza al método que llamo al método actual 1 2 La excepción no es tratada por el método main() y el programa aborta su ejecución 3 La sentencia lanza una excepción Excepción no es tratada y se lanza a la convocatoria del método
  • 17. Métodos para el control de una excepción Los métodos más importantes son: String getMessage(). Devuelve un mensaje de texto asociado a la excepción, dependiendo del tipo de objeto de excepción sobre el que se aplique. void printStackTrace(). Envía a la consola el volcado de la pila asociado a la excepción. Su uso puede ser muy útil durante la fase de desarrollo de la aplicación. void printStackTrace(PrintStream s). Esta versión permite enviar el volcado de pila a un objeto PrintStream cualquiera, por ejemplo, un archivo log.
  • 18. Bibliografías Martín, Antonio. Programador Certificado Java 2. Curso Práctico. Editorial RA-MA. 2da Edición. Joyanes L., Zahonero I. Programación en Java 6. Algoritmos, programación orientada a objetos e interfaz gráfica de usuarios. McGRAW-HILL, 1ra Edición.