SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Excepciones - 6 - © Fernando Berzal
Uso de excepciones en JavaUso de excepciones en JavaUso de excepciones en JavaUso de excepciones en Java
En Java, cuando se produce un error en un método,
“se lanza” un objeto Throwable.
Cualquier método que haya llamado al método puede “capturar la
excepción” y tomar las medidas que estime oportunas.
Tras capturar la excepción, el control no vuelve al método en el que se
produjo la excepción, sino que la ejecución del programa continúa en el
punto donde se haya capturado la excepción.
Consecuencia:
Nunca más tendremos que preocuparnos de “diseñar” códigos de error.
Jerarquía de clases para el manejo de excepciones en Java
!"
# $
Excepciones - 7 - © Fernando Berzal
Throwable
Clase base que representa todo lo que se puede “lanzar” en Java
Contiene una instantánea del estado de la pila en el momento en el
que se creó el objeto ( “stack trace” o “call chain").
Almacena un mensaje (variable de instancia de tipo String)
que podemos utilizar para detallar qué error se produjo.
Puede tener una causa, también de tipo Throwable,
que permite representar el error que causó este error.
Error
Subclase de Throwable que indica problemas graves que una aplicación
no debería intentar solucionar (documentación de Java).
Ejemplos: Memoria agotada, error interno de la JVM…
Exception
Exception y sus subclases indican situaciones que una aplicación
debería tratar de forma razonable.
Los dos tipos principales de excepciones son:
RuntimeException (errores del programador, como una división
por cero o el acceso fuera de los límites de un array)
IOException (errores que no puede evitar el programador,
generalmente relacionados con la entrada/salida del programa).
Excepciones - 8 - © Fernando Berzal
Captura de excepciones: Bloques try…catch
Se utilizan en Java para capturar las excepciones que se hayan 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 termina.
La cláusula catch recibe como argumento un objeto Throwable.
// Bloque 1
try {
// Bloque 2
} catch (Exception error) {
// Bloque 3
}
// Bloque 4
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*
// Bloque 1
try {
// Bloque 2
} catch (ArithmeticException ae) {
// Bloque 3
} catch (NullPointerException ne) {
// Bloque 4
}
// Bloque 5
Sin excepciones: 1 → 2 → 5
Excepción de tipo aritmético: 1 → 2* → 3 → 5
Acceso a un objeto nulo (null): 1 → 2* → 4 → 5
Excepción de otro tipo diferente: 1 → 2*
Excepciones - 9 - © Fernando Berzal
// Bloque1
try {
// Bloque 2
} catch (ArithmeticException ae) {
// Bloque 3
} catch (Exception error) {
// Bloque 4
}
// Bloque 5
Sin excepciones: 1 → 2 → 5
Excepción de tipo aritmético: 1 → 2* → 3 → 5
Excepción de otro tipo diferente: 1 → 2* → 4 → 5
¡Ojo! Las cláusulas check se comprueban en orden
// Bloque1
try {
// Bloque 2
} catch (Exception error) {
// Bloque 3
} catch (ArithmeticException ae) {
// Bloque 4
}
// Bloque 5
Sin excepciones: 1 → 2 → 5
Excepción de tipo aritmético: 1 → 2* → 3 → 5
Excepción de otro tipo diferente: 1 → 2* → 3 → 5
¡ El bloque 4 nunca se llegará a ejecutar !
Excepciones - 10 - © Fernando Berzal
La cláusula finally
En ocasiones, nos interesa ejecutar un fragmento de código
independientemente de si se produce o no una excepción
(por ejemplo, cerrar un fichero que estemos manipulando).
// Bloque1
try {
// Bloque 2
} catch (ArithmeticException ae) {
// Bloque 3
} finally {
// Bloque 4
}
// Bloque 5
Sin excepciones: 1 → 2 → 4 → 5
Excepción de tipo aritmético: 1 → 2* → 3 → 4 → 5
Excepción de otro tipo diferente: 1 → 2* → 4
Si el cuerpo del bloque try llega a comenzar su ejecución,
el bloque finally siempre se ejecutará…
Detrás del bloque try si no se producen excepciones
Después de un bloque catch si éste captura la excepción.
Justo después de que se produzca la excepción si ninguna cláusula
catch captura la excepción y antes de que la excepción se
propague hacia arriba.
Excepciones - 11 - © Fernando Berzal
Lanzamiento de excepciones
La sentencia throw
Se utiliza en Java para lanzar objetos de tipo Throwable
throw new Exception(“Mensaje de error…”);
Cuando se lanza una excepción:
Se sale inmediatamente del bloque de código actual
Si el bloque tiene asociada una cláusula catch adecuada para el
tipo de la excepción generada, se ejecuta el cuerpo de la cláusula
catch.
Si no, se sale inmediatamente del bloque (o método) dentro del cual
está el bloque en el que se produjo la excepción y se busca una
cláusula catch apropiada.
El proceso continúa hasta llegar al método main de la aplicación. Si
ahí tampoco existe una cláusula catch adecuada, la máquina
virtual Java finaliza su ejecución con un mensaje de error.
Propagación de excepciones (throws)
Si en el cuerpo de un método se lanza una excepción (de un tipo derivado
de la clase Exception), en la cabecera del método hay que añadir una
cláusula throws que incluye una lista de los tipos de excepciones que se
pueden producir al invocar el método.
Ejemplo
public String leerFichero (String nombreFichero)
throws IOException
...
Las excepciones de tipo RuntimeException (que son muy comunes)
no es necesario declararlas en la cláusula throws.
Excepciones - 12 - © Fernando Berzal
Al implementar un método, hay que decidir si las excepciones se
propagarán hacia arriba (throws) o se capturar en el propio método
(catch)
1. Un método que propaga una excepción:
public void f() throws IOException
{
// Fragmento de código que puede
// lanzar una excepción de tipo IOException
}
NOTA: Un método puede lanzar una excepción porque cree
explícitamente un objeto Throwable y lo lance con throw, o bien
porque llame a un método que genere la excepción y no la capture.
2. Un método equivalente que no propaga la excepción:
public void f()
{
// Fragmento de código libre de excepciones
try {
// Fragmento de código que puede
// lanzar una excepción de tipo IOException
// (p.ej. Acceso a un fichero)
} catch (IOException error) {
// Tratamiento de la excepción
} finally {
// Liberar recursos (siempre se hace)
}
}
Excepciones - 13 - © Fernando Berzal
Ejemplo clásico
…
public void transferir
(String IDorigen, String IDdestino, int cantidad)
{
Cuenta origen;
Cuenta destino;
// Comenzar transacción
database.startTransaction();
try {
origen = database.find(IDorigen);
if (origen == null)
throw new Exception("No existe ” + IDorigen);
origen.setBalance (origen.getBalance() – cantidad);
database.store(origen);
destino = database.find(IDdestino);
if (destino == null)
throw new Exception("No existe ” + IDdestino);
destino.setBalance(destino.getBalance()+cantidad);
database.store(destino)
// Confirmar la transacción
database.commit();
} catch (Exception error) {
// Cancelar la transacción
database.rollback();
}
}
…
Excepciones - 14 - © Fernando Berzal
Creación de nuevos tipos de excepciones
Un nuevo tipo de excepción puede crearse fácilmente: basta con definir
una subclase de un tipo de excepción ya existente.
public DivideByZeroException
extends ArithmeticException
{
public DivideByZeroException(String Message)
{
super(message);
}
}
Una excepción de este tipo puede entonces lanzarse
como cualquier otra excepción:
public double dividir(int num, int den)
throws DivideByZeroException
{
if (den==0)
throw new DivideByZeroException(“Error!”);
return ((double) num/(double)den);`
}
NOTA: Las aplicaciones suelen definir sus propias
subclases de la clase Exception para representar
situaciones excepcionales específicas de cada aplicación.

Más contenido relacionado

La actualidad más candente

Conexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlConexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlROQUE Caldas Dominguez
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVAMichelle Torres
 
Clases de direcciones IP
Clases de direcciones IPClases de direcciones IP
Clases de direcciones IPf_lazarte
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualSergio Sanchez
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
Fundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - IntroducciónFundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - IntroducciónManuel Padilla
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSdfgdfgs
 
La capa de aplicación
La capa de aplicaciónLa capa de aplicación
La capa de aplicaciónJuan Alvarez
 
Direccionamiento ip
Direccionamiento ipDireccionamiento ip
Direccionamiento ipKoldo Parra
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datoshugodanielgd
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql commandLouis Jhosimar
 
Fundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidadFundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidademilio_ambrosio
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Introducción a la Capa de Red
Introducción a la Capa de RedIntroducción a la Capa de Red
Introducción a la Capa de RedJavier Peinado I
 

La actualidad más candente (20)

Conexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlConexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysql
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVA
 
Clases de direcciones IP
Clases de direcciones IPClases de direcciones IP
Clases de direcciones IP
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
Modelos de datos
Modelos de datosModelos de datos
Modelos de datos
 
Rfc2460 es
Rfc2460 esRfc2460 es
Rfc2460 es
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Fundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - IntroducciónFundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - Introducción
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 
Protocolos de red
Protocolos de redProtocolos de red
Protocolos de red
 
Routers CIsco: configu
Routers CIsco: configuRouters CIsco: configu
Routers CIsco: configu
 
DIRECCIONAMIENTO IP BASICO I
DIRECCIONAMIENTO IP BASICO IDIRECCIONAMIENTO IP BASICO I
DIRECCIONAMIENTO IP BASICO I
 
La capa de aplicación
La capa de aplicaciónLa capa de aplicación
La capa de aplicación
 
Direccionamiento ip
Direccionamiento ipDireccionamiento ip
Direccionamiento ip
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datos
 
NORMALIZACIÓN
NORMALIZACIÓN  NORMALIZACIÓN
NORMALIZACIÓN
 
Crear base de datos mysql command
Crear base de datos mysql commandCrear base de datos mysql command
Crear base de datos mysql command
 
Fundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidadFundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidad
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Introducción a la Capa de Red
Introducción a la Capa de RedIntroducción a la Capa de Red
Introducción a la Capa de Red
 

Destacado

Java excepciones
Java excepcionesJava excepciones
Java excepcionesricardo_79
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en javajent46
 
Cu00927 c gestion excepciones java try catch finally ejemplos ejercicios
Cu00927 c gestion excepciones java try catch finally ejemplos ejerciciosCu00927 c gestion excepciones java try catch finally ejemplos ejercicios
Cu00927 c gestion excepciones java try catch finally ejemplos ejerciciosUniminuto - San Francisco
 
Medidas de tendencia central II
Medidas de tendencia central IIMedidas de tendencia central II
Medidas de tendencia central IIinnovalabcun
 
CINEMÁTICA CAÍDA LEBRE Y SEMIPARABÓLICO
CINEMÁTICA CAÍDA LEBRE Y SEMIPARABÓLICOCINEMÁTICA CAÍDA LEBRE Y SEMIPARABÓLICO
CINEMÁTICA CAÍDA LEBRE Y SEMIPARABÓLICOinnovalabcun
 
Medidas de dispersion o de variabilidad II
Medidas de dispersion o de variabilidad IIMedidas de dispersion o de variabilidad II
Medidas de dispersion o de variabilidad IIinnovalabcun
 
Doc ley850 web - parte 2
Doc ley850 web - parte 2 Doc ley850 web - parte 2
Doc ley850 web - parte 2 innovalabcun
 
APLICACIONES DE LA DERIVADA
APLICACIONES DE LA DERIVADAAPLICACIONES DE LA DERIVADA
APLICACIONES DE LA DERIVADAinnovalabcun
 
DERIVADAS DE ORDEN SUPERIOR
DERIVADAS DE ORDEN SUPERIORDERIVADAS DE ORDEN SUPERIOR
DERIVADAS DE ORDEN SUPERIORinnovalabcun
 
RAZÓN DE CAMBIO TEOREMA DE VALOR MEDIO
RAZÓN DE CAMBIO TEOREMA DE VALOR MEDIORAZÓN DE CAMBIO TEOREMA DE VALOR MEDIO
RAZÓN DE CAMBIO TEOREMA DE VALOR MEDIOinnovalabcun
 
DEFINICIÓN Y PROPIEDADES DE LA DERIVADA
DEFINICIÓN Y PROPIEDADES DE LA DERIVADADEFINICIÓN Y PROPIEDADES DE LA DERIVADA
DEFINICIÓN Y PROPIEDADES DE LA DERIVADAinnovalabcun
 
Entorno Personal de Aprendizaje
Entorno Personal de AprendizajeEntorno Personal de Aprendizaje
Entorno Personal de Aprendizajeinnovalabcun
 
Diseño de presentaciones
Diseño de presentacionesDiseño de presentaciones
Diseño de presentacionesinnovalabcun
 
Procedimiento Electoral Colombiano
Procedimiento Electoral ColombianoProcedimiento Electoral Colombiano
Procedimiento Electoral Colombianoinnovalabcun
 
Programación III (Java) - 04 Excepciones
Programación III (Java) - 04 ExcepcionesProgramación III (Java) - 04 Excepciones
Programación III (Java) - 04 ExcepcionesAndoni Eguíluz Morán
 
EL PRINCIPIO DE LA ORGANICIDAD
EL PRINCIPIO DE LA ORGANICIDAD EL PRINCIPIO DE LA ORGANICIDAD
EL PRINCIPIO DE LA ORGANICIDAD innovalabcun
 

Destacado (20)

Java excepciones
Java excepcionesJava excepciones
Java excepciones
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Cu00927 c gestion excepciones java try catch finally ejemplos ejercicios
Cu00927 c gestion excepciones java try catch finally ejemplos ejerciciosCu00927 c gestion excepciones java try catch finally ejemplos ejercicios
Cu00927 c gestion excepciones java try catch finally ejemplos ejercicios
 
CONTINUIDAD
CONTINUIDADCONTINUIDAD
CONTINUIDAD
 
Medidas de tendencia central II
Medidas de tendencia central IIMedidas de tendencia central II
Medidas de tendencia central II
 
DIFERENCIACIÓN
DIFERENCIACIÓN DIFERENCIACIÓN
DIFERENCIACIÓN
 
CINEMÁTICA CAÍDA LEBRE Y SEMIPARABÓLICO
CINEMÁTICA CAÍDA LEBRE Y SEMIPARABÓLICOCINEMÁTICA CAÍDA LEBRE Y SEMIPARABÓLICO
CINEMÁTICA CAÍDA LEBRE Y SEMIPARABÓLICO
 
Medidas de dispersion o de variabilidad II
Medidas de dispersion o de variabilidad IIMedidas de dispersion o de variabilidad II
Medidas de dispersion o de variabilidad II
 
Doc ley850 web - parte 2
Doc ley850 web - parte 2 Doc ley850 web - parte 2
Doc ley850 web - parte 2
 
APLICACIONES DE LA DERIVADA
APLICACIONES DE LA DERIVADAAPLICACIONES DE LA DERIVADA
APLICACIONES DE LA DERIVADA
 
DERIVADAS DE ORDEN SUPERIOR
DERIVADAS DE ORDEN SUPERIORDERIVADAS DE ORDEN SUPERIOR
DERIVADAS DE ORDEN SUPERIOR
 
RAZÓN DE CAMBIO TEOREMA DE VALOR MEDIO
RAZÓN DE CAMBIO TEOREMA DE VALOR MEDIORAZÓN DE CAMBIO TEOREMA DE VALOR MEDIO
RAZÓN DE CAMBIO TEOREMA DE VALOR MEDIO
 
DEFINICIÓN Y PROPIEDADES DE LA DERIVADA
DEFINICIÓN Y PROPIEDADES DE LA DERIVADADEFINICIÓN Y PROPIEDADES DE LA DERIVADA
DEFINICIÓN Y PROPIEDADES DE LA DERIVADA
 
Entorno Personal de Aprendizaje
Entorno Personal de AprendizajeEntorno Personal de Aprendizaje
Entorno Personal de Aprendizaje
 
Bibliografia
BibliografiaBibliografia
Bibliografia
 
Diseño de presentaciones
Diseño de presentacionesDiseño de presentaciones
Diseño de presentaciones
 
Procedimiento Electoral Colombiano
Procedimiento Electoral ColombianoProcedimiento Electoral Colombiano
Procedimiento Electoral Colombiano
 
Programación III (Java) - 04 Excepciones
Programación III (Java) - 04 ExcepcionesProgramación III (Java) - 04 Excepciones
Programación III (Java) - 04 Excepciones
 
EL PRINCIPIO DE LA ORGANICIDAD
EL PRINCIPIO DE LA ORGANICIDAD EL PRINCIPIO DE LA ORGANICIDAD
EL PRINCIPIO DE LA ORGANICIDAD
 

Similar a Uso de Excepciones en JAVA

Java exceptions
Java exceptionsJava exceptions
Java exceptionsDeli_amor
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en javasandropaul
 
Java exceptions
Java exceptionsJava exceptions
Java exceptionssandropaul
 
Excepciones
ExcepcionesExcepciones
Excepcioneskattybe
 
EXCEPCIONES JAVA
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVAmellcv
 
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
 
1 1 5 Objetos Excepcion
1 1 5 Objetos Excepcion1 1 5 Objetos Excepcion
1 1 5 Objetos ExcepcionUVM
 
Tema 10 excepciones
Tema 10 excepcionesTema 10 excepciones
Tema 10 excepcionesjbersosa
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepcionesjbersosa
 
Exceptions (2)
Exceptions (2)Exceptions (2)
Exceptions (2)jbersosa
 
Gestión de errores en Java
Gestión de errores en JavaGestión de errores en Java
Gestión de errores en Javaeccutpl
 

Similar a Uso de Excepciones en JAVA (20)

Java exceptions
Java exceptionsJava exceptions
Java exceptions
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
 
Java exceptions
Java exceptionsJava exceptions
Java exceptions
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
5.manejo de excepciones
5.manejo de excepciones5.manejo de excepciones
5.manejo de excepciones
 
Java5
Java5Java5
Java5
 
EXCEPCIONES JAVA
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVA
 
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
 
1 1 5 Objetos Excepcion
1 1 5 Objetos Excepcion1 1 5 Objetos Excepcion
1 1 5 Objetos Excepcion
 
Tema 10 excepciones
Tema 10 excepcionesTema 10 excepciones
Tema 10 excepciones
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
 
Lab excepciones
Lab excepcionesLab excepciones
Lab excepciones
 
05 java excepciones
05 java excepciones05 java excepciones
05 java excepciones
 
11 Excepciones
11   Excepciones11   Excepciones
11 Excepciones
 
Try catch
Try catchTry catch
Try catch
 
Gestión de Excepciones
Gestión de ExcepcionesGestión de Excepciones
Gestión de Excepciones
 
Exceptions (2)
Exceptions (2)Exceptions (2)
Exceptions (2)
 
Taller 1 4
Taller 1 4Taller 1 4
Taller 1 4
 
Gestión de errores en Java
Gestión de errores en JavaGestión de errores en Java
Gestión de errores en Java
 
Gestion de errores en java
Gestion de errores en javaGestion de errores en java
Gestion de errores en java
 

Más de innovalabcun

Elaboración de un proyecto de investigación
Elaboración de un proyecto de investigación Elaboración de un proyecto de investigación
Elaboración de un proyecto de investigación innovalabcun
 
Reproduccion animales
Reproduccion animalesReproduccion animales
Reproduccion animalesinnovalabcun
 
Reproduccion plantas
Reproduccion plantasReproduccion plantas
Reproduccion plantasinnovalabcun
 
La estructura de la célula
La estructura de la célulaLa estructura de la célula
La estructura de la célulainnovalabcun
 
Las Moléculas de la Vida Información complementaria
Las Moléculas de la Vida Información complementariaLas Moléculas de la Vida Información complementaria
Las Moléculas de la Vida Información complementariainnovalabcun
 
MECÁNICA: CONCEPTOS BÁSICOS
MECÁNICA: CONCEPTOS BÁSICOS MECÁNICA: CONCEPTOS BÁSICOS
MECÁNICA: CONCEPTOS BÁSICOS innovalabcun
 
ELEMENTOS DE UN SISTEMA
ELEMENTOS DE UN SISTEMA ELEMENTOS DE UN SISTEMA
ELEMENTOS DE UN SISTEMA innovalabcun
 
SUBSISTEMAS DE CONTROL
SUBSISTEMAS DE CONTROL SUBSISTEMAS DE CONTROL
SUBSISTEMAS DE CONTROL innovalabcun
 
DISEÑO MEJORAMIENTO DE LOS SISTEMAS
DISEÑO MEJORAMIENTO DE LOS SISTEMASDISEÑO MEJORAMIENTO DE LOS SISTEMAS
DISEÑO MEJORAMIENTO DE LOS SISTEMASinnovalabcun
 
Doc ley850 web - parte 1
Doc ley850 web - parte 1Doc ley850 web - parte 1
Doc ley850 web - parte 1innovalabcun
 
el control de la gestión contractual de las identidades publicas
el control de la gestión contractual de las identidades publicasel control de la gestión contractual de las identidades publicas
el control de la gestión contractual de las identidades publicasinnovalabcun
 
Memorias del programa en capacitación ciudadana y control social: En la garan...
Memorias del programa en capacitación ciudadana y control social: En la garan...Memorias del programa en capacitación ciudadana y control social: En la garan...
Memorias del programa en capacitación ciudadana y control social: En la garan...innovalabcun
 

Más de innovalabcun (20)

Estado del arte
Estado del arteEstado del arte
Estado del arte
 
Elaboración de un proyecto de investigación
Elaboración de un proyecto de investigación Elaboración de un proyecto de investigación
Elaboración de un proyecto de investigación
 
Reproduccion animales
Reproduccion animalesReproduccion animales
Reproduccion animales
 
Reproduccion plantas
Reproduccion plantasReproduccion plantas
Reproduccion plantas
 
Genes cromosomas
Genes cromosomasGenes cromosomas
Genes cromosomas
 
Anabolismo
AnabolismoAnabolismo
Anabolismo
 
Catabolismo
CatabolismoCatabolismo
Catabolismo
 
Metabolismo
MetabolismoMetabolismo
Metabolismo
 
La estructura de la célula
La estructura de la célulaLa estructura de la célula
La estructura de la célula
 
Las Moléculas de la Vida Información complementaria
Las Moléculas de la Vida Información complementariaLas Moléculas de la Vida Información complementaria
Las Moléculas de la Vida Información complementaria
 
El atomo
El atomoEl atomo
El atomo
 
Quimica organica
Quimica organicaQuimica organica
Quimica organica
 
Subneting -
Subneting - Subneting -
Subneting -
 
MECÁNICA: CONCEPTOS BÁSICOS
MECÁNICA: CONCEPTOS BÁSICOS MECÁNICA: CONCEPTOS BÁSICOS
MECÁNICA: CONCEPTOS BÁSICOS
 
ELEMENTOS DE UN SISTEMA
ELEMENTOS DE UN SISTEMA ELEMENTOS DE UN SISTEMA
ELEMENTOS DE UN SISTEMA
 
SUBSISTEMAS DE CONTROL
SUBSISTEMAS DE CONTROL SUBSISTEMAS DE CONTROL
SUBSISTEMAS DE CONTROL
 
DISEÑO MEJORAMIENTO DE LOS SISTEMAS
DISEÑO MEJORAMIENTO DE LOS SISTEMASDISEÑO MEJORAMIENTO DE LOS SISTEMAS
DISEÑO MEJORAMIENTO DE LOS SISTEMAS
 
Doc ley850 web - parte 1
Doc ley850 web - parte 1Doc ley850 web - parte 1
Doc ley850 web - parte 1
 
el control de la gestión contractual de las identidades publicas
el control de la gestión contractual de las identidades publicasel control de la gestión contractual de las identidades publicas
el control de la gestión contractual de las identidades publicas
 
Memorias del programa en capacitación ciudadana y control social: En la garan...
Memorias del programa en capacitación ciudadana y control social: En la garan...Memorias del programa en capacitación ciudadana y control social: En la garan...
Memorias del programa en capacitación ciudadana y control social: En la garan...
 

Último

Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwealekzHuri
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPANEP - DETP
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 

Último (20)

Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETP
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 

Uso de Excepciones en JAVA

  • 1. Excepciones - 6 - © Fernando Berzal Uso de excepciones en JavaUso de excepciones en JavaUso de excepciones en JavaUso de excepciones en Java En Java, cuando se produce un error en un método, “se lanza” un objeto Throwable. Cualquier método que haya llamado al método puede “capturar la excepción” y tomar las medidas que estime oportunas. Tras capturar la excepción, el control no vuelve al método en el que se produjo la excepción, sino que la ejecución del programa continúa en el punto donde se haya capturado la excepción. Consecuencia: Nunca más tendremos que preocuparnos de “diseñar” códigos de error. Jerarquía de clases para el manejo de excepciones en Java !" # $
  • 2. Excepciones - 7 - © Fernando Berzal Throwable Clase base que representa todo lo que se puede “lanzar” en Java Contiene una instantánea del estado de la pila en el momento en el que se creó el objeto ( “stack trace” o “call chain"). Almacena un mensaje (variable de instancia de tipo String) que podemos utilizar para detallar qué error se produjo. Puede tener una causa, también de tipo Throwable, que permite representar el error que causó este error. Error Subclase de Throwable que indica problemas graves que una aplicación no debería intentar solucionar (documentación de Java). Ejemplos: Memoria agotada, error interno de la JVM… Exception Exception y sus subclases indican situaciones que una aplicación debería tratar de forma razonable. Los dos tipos principales de excepciones son: RuntimeException (errores del programador, como una división por cero o el acceso fuera de los límites de un array) IOException (errores que no puede evitar el programador, generalmente relacionados con la entrada/salida del programa).
  • 3. Excepciones - 8 - © Fernando Berzal Captura de excepciones: Bloques try…catch Se utilizan en Java para capturar las excepciones que se hayan 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 termina. La cláusula catch recibe como argumento un objeto Throwable. // Bloque 1 try { // Bloque 2 } catch (Exception error) { // Bloque 3 } // Bloque 4 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* // Bloque 1 try { // Bloque 2 } catch (ArithmeticException ae) { // Bloque 3 } catch (NullPointerException ne) { // Bloque 4 } // Bloque 5 Sin excepciones: 1 → 2 → 5 Excepción de tipo aritmético: 1 → 2* → 3 → 5 Acceso a un objeto nulo (null): 1 → 2* → 4 → 5 Excepción de otro tipo diferente: 1 → 2*
  • 4. Excepciones - 9 - © Fernando Berzal // Bloque1 try { // Bloque 2 } catch (ArithmeticException ae) { // Bloque 3 } catch (Exception error) { // Bloque 4 } // Bloque 5 Sin excepciones: 1 → 2 → 5 Excepción de tipo aritmético: 1 → 2* → 3 → 5 Excepción de otro tipo diferente: 1 → 2* → 4 → 5 ¡Ojo! Las cláusulas check se comprueban en orden // Bloque1 try { // Bloque 2 } catch (Exception error) { // Bloque 3 } catch (ArithmeticException ae) { // Bloque 4 } // Bloque 5 Sin excepciones: 1 → 2 → 5 Excepción de tipo aritmético: 1 → 2* → 3 → 5 Excepción de otro tipo diferente: 1 → 2* → 3 → 5 ¡ El bloque 4 nunca se llegará a ejecutar !
  • 5. Excepciones - 10 - © Fernando Berzal La cláusula finally En ocasiones, nos interesa ejecutar un fragmento de código independientemente de si se produce o no una excepción (por ejemplo, cerrar un fichero que estemos manipulando). // Bloque1 try { // Bloque 2 } catch (ArithmeticException ae) { // Bloque 3 } finally { // Bloque 4 } // Bloque 5 Sin excepciones: 1 → 2 → 4 → 5 Excepción de tipo aritmético: 1 → 2* → 3 → 4 → 5 Excepción de otro tipo diferente: 1 → 2* → 4 Si el cuerpo del bloque try llega a comenzar su ejecución, el bloque finally siempre se ejecutará… Detrás del bloque try si no se producen excepciones Después de un bloque catch si éste captura la excepción. Justo después de que se produzca la excepción si ninguna cláusula catch captura la excepción y antes de que la excepción se propague hacia arriba.
  • 6. Excepciones - 11 - © Fernando Berzal Lanzamiento de excepciones La sentencia throw Se utiliza en Java para lanzar objetos de tipo Throwable throw new Exception(“Mensaje de error…”); Cuando se lanza una excepción: Se sale inmediatamente del bloque de código actual Si el bloque tiene asociada una cláusula catch adecuada para el tipo de la excepción generada, se ejecuta el cuerpo de la cláusula catch. Si no, se sale inmediatamente del bloque (o método) dentro del cual está el bloque en el que se produjo la excepción y se busca una cláusula catch apropiada. El proceso continúa hasta llegar al método main de la aplicación. Si ahí tampoco existe una cláusula catch adecuada, la máquina virtual Java finaliza su ejecución con un mensaje de error. Propagación de excepciones (throws) Si en el cuerpo de un método se lanza una excepción (de un tipo derivado de la clase Exception), en la cabecera del método hay que añadir una cláusula throws que incluye una lista de los tipos de excepciones que se pueden producir al invocar el método. Ejemplo public String leerFichero (String nombreFichero) throws IOException ... Las excepciones de tipo RuntimeException (que son muy comunes) no es necesario declararlas en la cláusula throws.
  • 7. Excepciones - 12 - © Fernando Berzal Al implementar un método, hay que decidir si las excepciones se propagarán hacia arriba (throws) o se capturar en el propio método (catch) 1. Un método que propaga una excepción: public void f() throws IOException { // Fragmento de código que puede // lanzar una excepción de tipo IOException } NOTA: Un método puede lanzar una excepción porque cree explícitamente un objeto Throwable y lo lance con throw, o bien porque llame a un método que genere la excepción y no la capture. 2. Un método equivalente que no propaga la excepción: public void f() { // Fragmento de código libre de excepciones try { // Fragmento de código que puede // lanzar una excepción de tipo IOException // (p.ej. Acceso a un fichero) } catch (IOException error) { // Tratamiento de la excepción } finally { // Liberar recursos (siempre se hace) } }
  • 8. Excepciones - 13 - © Fernando Berzal Ejemplo clásico … public void transferir (String IDorigen, String IDdestino, int cantidad) { Cuenta origen; Cuenta destino; // Comenzar transacción database.startTransaction(); try { origen = database.find(IDorigen); if (origen == null) throw new Exception("No existe ” + IDorigen); origen.setBalance (origen.getBalance() – cantidad); database.store(origen); destino = database.find(IDdestino); if (destino == null) throw new Exception("No existe ” + IDdestino); destino.setBalance(destino.getBalance()+cantidad); database.store(destino) // Confirmar la transacción database.commit(); } catch (Exception error) { // Cancelar la transacción database.rollback(); } } …
  • 9. Excepciones - 14 - © Fernando Berzal Creación de nuevos tipos de excepciones Un nuevo tipo de excepción puede crearse fácilmente: basta con definir una subclase de un tipo de excepción ya existente. public DivideByZeroException extends ArithmeticException { public DivideByZeroException(String Message) { super(message); } } Una excepción de este tipo puede entonces lanzarse como cualquier otra excepción: public double dividir(int num, int den) throws DivideByZeroException { if (den==0) throw new DivideByZeroException(“Error!”); return ((double) num/(double)den);` } NOTA: Las aplicaciones suelen definir sus propias subclases de la clase Exception para representar situaciones excepcionales específicas de cada aplicación.