SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
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

Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completoBoris Salleg
 
Algoritmos de Busqueda
Algoritmos de BusquedaAlgoritmos de Busqueda
Algoritmos de BusquedaFernando Solis
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
Agentes reactivos basados en modelos
Agentes reactivos basados en modelosAgentes reactivos basados en modelos
Agentes reactivos basados en modelosSaúl Hulse
 
1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetos1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetosCirino Silva tovar
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en JavaUCE
 
Operadores aritméticos, lógicos, relacionales.
Operadores aritméticos, lógicos, relacionales.Operadores aritméticos, lógicos, relacionales.
Operadores aritméticos, lógicos, relacionales.Raul Ortega
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C SharpEdgardo Martinez
 

La actualidad más candente (20)

Frames
FramesFrames
Frames
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
 
Algoritmos de Busqueda
Algoritmos de BusquedaAlgoritmos de Busqueda
Algoritmos de Busqueda
 
BASE DE DATOS
BASE DE DATOSBASE DE DATOS
BASE DE DATOS
 
pruebas de cajas blanca
 pruebas de cajas blanca pruebas de cajas blanca
pruebas de cajas blanca
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Modelos de dominio
Modelos de dominioModelos de dominio
Modelos de dominio
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Agentes reactivos basados en modelos
Agentes reactivos basados en modelosAgentes reactivos basados en modelos
Agentes reactivos basados en modelos
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetos1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetos
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Modelos de iluminacion
Modelos de iluminacionModelos de iluminacion
Modelos de iluminacion
 
Operadores aritméticos, lógicos, relacionales.
Operadores aritméticos, lógicos, relacionales.Operadores aritméticos, lógicos, relacionales.
Operadores aritméticos, lógicos, relacionales.
 
Arrays con JavaScript
Arrays con JavaScriptArrays con JavaScript
Arrays con JavaScript
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 

Destacado

Diseño adaptativo y responsive
Diseño adaptativo y responsiveDiseño adaptativo y responsive
Diseño adaptativo y responsiveRenny 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 2015Renny Batista
 
Fundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIFundamentos de Sistema- >Tema II
Fundamentos de Sistema- >Tema IIRenny 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 ListasRenny Batista
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Renny Batista
 
Html Tema 4 - Formularios
Html Tema 4 - FormulariosHtml Tema 4 - Formularios
Html Tema 4 - FormulariosRenny Batista
 
Excepciones
ExcepcionesExcepciones
Excepcionesrilara
 
Exceptions (2)
Exceptions (2)Exceptions (2)
Exceptions (2)jbersosa
 
Curso Java Inicial 7 Excepciones
Curso Java Inicial   7 ExcepcionesCurso Java Inicial   7 Excepciones
Curso Java Inicial 7 ExcepcionesEmilio Aviles Avila
 
Java exceptions
Java exceptionsJava exceptions
Java exceptionsDeli_amor
 
Tema 10 excepciones
Tema 10 excepcionesTema 10 excepciones
Tema 10 excepcionesjbersosa
 

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
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
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
 
Tema 10 excepciones
Tema 10 excepcionesTema 10 excepciones
Tema 10 excepciones
 
Unidad 5: Excepciones Ejercicio 2
Unidad 5: Excepciones Ejercicio 2Unidad 5: Excepciones Ejercicio 2
Unidad 5: Excepciones Ejercicio 2
 

Similar a 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.ecSilvana Vargas
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepcionesjbersosa
 
Excepciones
ExcepcionesExcepciones
Excepcioneskattybe
 
Jyoc java-cap12 excepciones
Jyoc java-cap12 excepcionesJyoc java-cap12 excepciones
Jyoc java-cap12 excepcionesJyoc X
 
Java excepciones
Java excepcionesJava excepciones
Java excepcionesricardo_79
 
Excepciones
ExcepcionesExcepciones
Excepcionesale8819
 
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 stringJacqui 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 stringJacqui Venegas
 
Manejo Estructurado De Excepciones
Manejo Estructurado De ExcepcionesManejo Estructurado De Excepciones
Manejo Estructurado De ExcepcionesMarvin Romero
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVAinnovalabcun
 
Tema 4 excepciones por gio
Tema 4   excepciones por gioTema 4   excepciones por gio
Tema 4 excepciones por gioRobert Wolf
 

Similar a 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
 
Java excepciones
Java excepcionesJava excepciones
Java excepciones
 
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
 
5.manejo de excepciones
5.manejo de excepciones5.manejo de excepciones
5.manejo de excepciones
 
Tema 4 excepciones por gio
Tema 4   excepciones por gioTema 4   excepciones por gio
Tema 4 excepciones por gio
 

Más de Renny Batista

Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del softwareRenny Batista
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de DatosRenny Batista
 
Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java scriptRenny 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 objetosRenny 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

IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxLudy Ventocilla Napanga
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfpatriciavsquezbecerr
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdfRAMON EUSTAQUIO CARO BAYONA
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 

Último (20)

IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdf
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
recursos naturales america cuarto basico
recursos naturales america cuarto basicorecursos naturales america cuarto basico
recursos naturales america cuarto basico
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 

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.