SlideShare a Scribd company logo
1 of 16
Programación de Algoritmos Gestión de Errores en Java Autor: Astrid Medina
Una excepción o un error es un evento que ocurre durante la ejecución de un programa y detiene el flujo normal de la secuencia de instrucciones de ese programa. Las excepciones en Java están destinadas a la detección y corrección de errores. Si hay un error, la aplicación debe lanzar una excepción ( throw ) que a su vez debería capturar ( catch ) y resolver la situación de error, o poder ser tratada finalmente ( finally ) por un gestor por defecto u omisión. Definición Las excepciones son formas muy limpias de manejar errores y problemas inesperados en la lógica del programa.  Gestión de Errores
Tipos de Excepciones Exception:  Conjunto de excepciones que el programa debe capturar y resolver.  Subclases     RuntimeException,  ArithmeticException,   IndexOutOfBoundsException, NullPointerException, etc. Gestión de Errores Error:  Son fallos de tipo catastrófico, originan la parada del programa.  Subclases     AWTError,   LinkageError,  ThreadDeath, VirtualMachineError, etc.
Excepciones Predefinidas Los nombres de las excepciones indican la condición de error que representan. Las siguientes son las excepciones predefinidas más frecuentes que se pueden encontrar: ArithmeticException Las excepciones aritméticas son típicamente el resultado de división por 0: int i = 12 / 0; Gestión de Errores
Excepciones Predefinidas Gestión de Errores IncompatibleClassChangeException El intento de cambiar una clase afectada por referencias en otros objetos, específicamente cuando esos objetos todavía no han sido recompilados. ClassCastException  El intento de convertir un objeto a otra clase que no es válida. NullPointerException  Se produce cuando se intenta acceder a una variable o método antes de ser definido.
Excepciones Predefinidas Gestión de Errores NegativeArraySizeException  Puede ocurrir si hay un error aritmético al cambiar el tamaño de un array. NoClassDefFoundException  Se referenció una clase que el sistema es incapaz de encontrar. ArrayIndexOutOfBoundsException Se genera al intentar acceder a un elemento de un array más allá de los límites definidos inicialmente para ese array.
Excepciones Predefinidas Gestión de Errores UnsatisfiedLinkException  Se intenta de acceder a un método nativo que no existe.  InternalException  Este error se reserva para eventos que no deberían ocurrir. Por definición, el usuario nunca debería ver este error y esta excepción no debería lanzarse.
Excepciones Propias También el programador puede lanzar sus propias excepciones, extendiendo la clase  System.exception .  Por ejemplo, considérese un programa cliente/servidor. El código cliente se intenta conectar al servidor, y durante 5 segundos se espera a que conteste el servidor. Si el servidor no responde, el servidor lanzaría la excepción de time-out   Gestión de Errores
Excepciones Propias Gestión de Errores class ServerTimeOutException extends Exception {} public void conectame( String nombreServidor ) throws Exception { int exito; int puerto = 80; exito = open( nombreServidor,puerto ); if( exito == -1 ) throw ServerTimeOutException; } Excepciones Predefinidas
public void encuentraServidor() { try { conectame( servidorDefecto ); catch( ServerTimeOutException e ) { g.drawString(  "Time-out del Servidor, intentando alternativa",5,5 ); conectame( servidorAlterno ); } } Excepciones Propias Gestión de Errores Excepciones Propias
Captura de Excepciones Gestión de Errores Las excepciones lanzadas por un método que pueda hacerlo deben recoger en bloque try/catch o try/finally. try Es el bloque de código donde se previene que se genere una excepción. El bloque  try  tiene que ir seguido, al menos, por una cláusula catch o una cláusula finally. try { // Sentencias Java }
Captura de Excepciones Gestión de Errores catch Es el código que se ejecuta cuando se produce la excepción. No hay código alguno entre un bloque  try  y un bloque  catch , ni entre bloques  catch . La sintaxis general de la sentencia catch en Java es la siguiente: catch( UnTipoTrhowable nombreVariable ) { // sentencias Java }
Captura de Excepciones Gestión de Errores try Es el bloque de código que se ejecuta siempre, haya o no excepción. Este bloque  finally  puede ser útil cuando no hay ninguna excepción. Es un trozo de código que se ejecuta independientemente de lo que se haga en el bloque  try .
Captura de Excepciones Gestión de Errores throw La sentencia throw se utiliza para lanzar explícitamente una excepción. En primer lugar se debe obtener un descriptor de un objeto  Throwable , bien mediante un parámetro en una cláusula catch o, se puede crear utilizando el operador new. La forma general de la sentencia throw es: throw ObjetoThrowable;
Captura de Excepciones Gestión de Errores throws Si un método es capaz de provocar una excepción que no maneja él mismo, debería especificar este comportamiento, para que todos los métodos que lo llamen puedan colocar protecciones frente a esa excepción. La palabra clave throws se utiliza para identificar la lista posible de excepciones que un método puede lanzar.
Ejemplo Gestión de Errores public class ValidacionNumero { public static void main(String[] args) { boolean esNumero = false; int nro = 0; String txtNro = null; do{ txtNro = JOptionPane.showInputDialog("Ingrese un nro. "); try{ nro = Integer.parseInt(txtNro); esNumero = true; }catch(NumberFormatException nfe){ System.out.println("ERROR. No ha ingresado un nro."); }  }while(esNumero == false); JOptionPane.showMessageDialog(null,  "El nro ingresado fue el: " + nro, "Resultado", JOptionPane.INFORMATION_MESSAGE); System.exit(0); } } .

More Related Content

What's hot

Multiprocesamiento (S.O)
Multiprocesamiento (S.O)Multiprocesamiento (S.O)
Multiprocesamiento (S.O)
Javier Alvarez
 
3 2 1 componentes y contenedores swing
3 2 1 componentes y contenedores swing3 2 1 componentes y contenedores swing
3 2 1 componentes y contenedores swing
UVM
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
ivanjvic
 

What's hot (20)

Poo
PooPoo
Poo
 
Ejemplo de Trigger en Mysql
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
 
DIAPOSITIVAS CURSO PYTHON.pptx.pdf
DIAPOSITIVAS CURSO PYTHON.pptx.pdfDIAPOSITIVAS CURSO PYTHON.pptx.pdf
DIAPOSITIVAS CURSO PYTHON.pptx.pdf
 
Multiprocesamiento (S.O)
Multiprocesamiento (S.O)Multiprocesamiento (S.O)
Multiprocesamiento (S.O)
 
3 2 1 componentes y contenedores swing
3 2 1 componentes y contenedores swing3 2 1 componentes y contenedores swing
3 2 1 componentes y contenedores swing
 
Classes abstratas e interfaces
Classes abstratas e interfacesClasses abstratas e interfaces
Classes abstratas e interfaces
 
Exception handling in Java
Exception handling in JavaException handling in Java
Exception handling in Java
 
Exception Handling in Java
Exception Handling in JavaException Handling in Java
Exception Handling in Java
 
Java multi threading
Java multi threadingJava multi threading
Java multi threading
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 
Tópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUITópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUI
 
Introducción a los tipos de datos
Introducción a los tipos de datosIntroducción a los tipos de datos
Introducción a los tipos de datos
 
Algoritmos de planificacion.pdf
Algoritmos de planificacion.pdfAlgoritmos de planificacion.pdf
Algoritmos de planificacion.pdf
 
Presentacion PL/SQL
Presentacion PL/SQLPresentacion PL/SQL
Presentacion PL/SQL
 
5.manejo de excepciones
5.manejo de excepciones5.manejo de excepciones
5.manejo de excepciones
 
Eficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecuciónEficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecución
 
Java ME (Micro Edition)
Java ME (Micro Edition) Java ME (Micro Edition)
Java ME (Micro Edition)
 
Introduccion a python 3
Introduccion a python 3Introduccion a python 3
Introduccion a python 3
 
Recursividad
RecursividadRecursividad
Recursividad
 

Viewers also liked

Arreglos Bidimensionales
Arreglos BidimensionalesArreglos Bidimensionales
Arreglos Bidimensionales
guestefc95b
 
Migración de Base de Datos con SQL Developer
Migración de Base de Datos con SQL DeveloperMigración de Base de Datos con SQL Developer
Migración de Base de Datos con SQL Developer
Valentin Leonard Tabacaru
 
Los elementos para la redacción de reporte de investigación y ensayos coheren...
Los elementos para la redacción de reporte de investigación y ensayos coheren...Los elementos para la redacción de reporte de investigación y ensayos coheren...
Los elementos para la redacción de reporte de investigación y ensayos coheren...
MSCTEUNEFA2010
 
Presentación en power point del informe
Presentación en power point del informePresentación en power point del informe
Presentación en power point del informe
Juan Pinto
 
Presentacion de diapositivas para profesionales.
Presentacion de diapositivas para profesionales.Presentacion de diapositivas para profesionales.
Presentacion de diapositivas para profesionales.
lilibeth lissett
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Carlitos Correa Jr.
 

Viewers also liked (17)

Manejo de excepciones en Java
Manejo de excepciones en JavaManejo de excepciones en Java
Manejo de excepciones en Java
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Arreglos Bidimensionales
Arreglos BidimensionalesArreglos Bidimensionales
Arreglos Bidimensionales
 
Clases y objetos en java
Clases y objetos en javaClases y objetos en java
Clases y objetos en java
 
Unidad 5: Excepciones Ejercicio 3
Unidad 5: Excepciones Ejercicio 3Unidad 5: Excepciones Ejercicio 3
Unidad 5: Excepciones Ejercicio 3
 
NetBeans - El único IDE que necesitas
NetBeans - El único IDE que necesitasNetBeans - El único IDE que necesitas
NetBeans - El único IDE que necesitas
 
Migración de Base de Datos con SQL Developer
Migración de Base de Datos con SQL DeveloperMigración de Base de Datos con SQL Developer
Migración de Base de Datos con SQL Developer
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Tutorial para Presentar un Informe
Tutorial para Presentar un InformeTutorial para Presentar un Informe
Tutorial para Presentar un Informe
 
Los elementos para la redacción de reporte de investigación y ensayos coheren...
Los elementos para la redacción de reporte de investigación y ensayos coheren...Los elementos para la redacción de reporte de investigación y ensayos coheren...
Los elementos para la redacción de reporte de investigación y ensayos coheren...
 
Presentación en power point del informe
Presentación en power point del informePresentación en power point del informe
Presentación en power point del informe
 
Presentación de Elaboración Reporte de Investigación
Presentación de Elaboración Reporte de InvestigaciónPresentación de Elaboración Reporte de Investigación
Presentación de Elaboración Reporte de Investigación
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Presentacion de diapositivas para profesionales.
Presentacion de diapositivas para profesionales.Presentacion de diapositivas para profesionales.
Presentacion de diapositivas para profesionales.
 
Los 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesLos 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentes
 
Diapositivas Informe
Diapositivas   InformeDiapositivas   Informe
Diapositivas Informe
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
 

Similar to Gestión de errores en Java

Excepciones
ExcepcionesExcepciones
Excepciones
kattybe
 
Guia demanejodeexcepcionesaserciones
Guia demanejodeexcepcionesasercionesGuia demanejodeexcepcionesaserciones
Guia demanejodeexcepcionesaserciones
jbersosa
 
Tema 10 excepciones
Tema 10 excepcionesTema 10 excepciones
Tema 10 excepciones
jbersosa
 
1 1 5 Objetos Excepcion
1 1 5 Objetos Excepcion1 1 5 Objetos Excepcion
1 1 5 Objetos Excepcion
UVM
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
innovalabcun
 
Java exceptions
Java exceptionsJava exceptions
Java exceptions
sandropaul
 

Similar to Gestión de errores en Java (20)

Excepciones
ExcepcionesExcepciones
Excepciones
 
Gestion de errores en java
Gestion de errores en javaGestion de errores en java
Gestion de errores en java
 
Taller 1 4
Taller 1 4Taller 1 4
Taller 1 4
 
Java5
Java5Java5
Java5
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
 
Guia demanejodeexcepcionesaserciones
Guia demanejodeexcepcionesasercionesGuia demanejodeexcepcionesaserciones
Guia demanejodeexcepcionesaserciones
 
Tema 10 excepciones
Tema 10 excepcionesTema 10 excepciones
Tema 10 excepciones
 
11 Excepciones
11   Excepciones11   Excepciones
11 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
 
1 1 5 Objetos Excepcion
1 1 5 Objetos Excepcion1 1 5 Objetos Excepcion
1 1 5 Objetos Excepcion
 
Lab excepciones
Lab excepcionesLab excepciones
Lab excepciones
 
Gestión de Excepciones
Gestión de ExcepcionesGestión de Excepciones
Gestión de Excepciones
 
Resumen
ResumenResumen
Resumen
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
 
Capitulo 16- Excepciones en Java
Capitulo 16- Excepciones en JavaCapitulo 16- Excepciones en Java
Capitulo 16- Excepciones en Java
 
Try catch
Try catchTry catch
Try catch
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
05 java excepciones
05 java excepciones05 java excepciones
05 java excepciones
 
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
 
Java exceptions
Java exceptionsJava exceptions
Java exceptions
 

More from eccutpl

Guillermo montilla memoriatalleresponencia
Guillermo montilla memoriatalleresponenciaGuillermo montilla memoriatalleresponencia
Guillermo montilla memoriatalleresponencia
eccutpl
 
Hugo pardo aprendizaje móvil
Hugo pardo   aprendizaje móvilHugo pardo   aprendizaje móvil
Hugo pardo aprendizaje móvil
eccutpl
 

More from eccutpl (20)

Jorge lopez web_apps
Jorge lopez web_appsJorge lopez web_apps
Jorge lopez web_apps
 
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
 
Sistemas Recomendadores - ws14
Sistemas Recomendadores - ws14Sistemas Recomendadores - ws14
Sistemas Recomendadores - ws14
 
Seguridad de la información
Seguridad de la informaciónSeguridad de la información
Seguridad de la información
 
Adquisicion Reconstruccion RM Parte 2
Adquisicion Reconstruccion RM Parte 2Adquisicion Reconstruccion RM Parte 2
Adquisicion Reconstruccion RM Parte 2
 
Adquisicion Reconstruccion RM Parte 1
Adquisicion Reconstruccion RM Parte 1Adquisicion Reconstruccion RM Parte 1
Adquisicion Reconstruccion RM Parte 1
 
Adquisicion Reconstruccion RM Part3
Adquisicion Reconstruccion RM Part3Adquisicion Reconstruccion RM Part3
Adquisicion Reconstruccion RM Part3
 
Memoria pabloirarrázaval
Memoria pabloirarrázavalMemoria pabloirarrázaval
Memoria pabloirarrázaval
 
Difusión Científica y Publicación en Revistas de Impacto y Calidad
Difusión Científica y Publicación en Revistas de Impacto y CalidadDifusión Científica y Publicación en Revistas de Impacto y Calidad
Difusión Científica y Publicación en Revistas de Impacto y Calidad
 
Memoria Fernando Barrios
Memoria Fernando BarriosMemoria Fernando Barrios
Memoria Fernando Barrios
 
La web educativa 2.0
La web educativa 2.0La web educativa 2.0
La web educativa 2.0
 
Guillermo montilla memoriatalleresponencia
Guillermo montilla memoriatalleresponenciaGuillermo montilla memoriatalleresponencia
Guillermo montilla memoriatalleresponencia
 
Presentación neuropanacea
Presentación neuropanaceaPresentación neuropanacea
Presentación neuropanacea
 
Violeta bazante gestion de información científica
Violeta bazante gestion de información científicaVioleta bazante gestion de información científica
Violeta bazante gestion de información científica
 
Hugo pardo aprendizaje móvil
Hugo pardo   aprendizaje móvilHugo pardo   aprendizaje móvil
Hugo pardo aprendizaje móvil
 
Drupal mas que un cms
Drupal mas que un cmsDrupal mas que un cms
Drupal mas que un cms
 
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
 
Estructurar proyectos de desarrolla de software basados
Estructurar proyectos de desarrolla de software basadosEstructurar proyectos de desarrolla de software basados
Estructurar proyectos de desarrolla de software basados
 
Guía utilizacion de patentes
Guía utilizacion de patentesGuía utilizacion de patentes
Guía utilizacion de patentes
 
1. uso de la información tecnológica
1.  uso de la información tecnológica1.  uso de la información tecnológica
1. uso de la información tecnológica
 

Recently uploaded

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Recently uploaded (10)

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

Gestión de errores en Java

  • 1. Programación de Algoritmos Gestión de Errores en Java Autor: Astrid Medina
  • 2. Una excepción o un error es un evento que ocurre durante la ejecución de un programa y detiene el flujo normal de la secuencia de instrucciones de ese programa. Las excepciones en Java están destinadas a la detección y corrección de errores. Si hay un error, la aplicación debe lanzar una excepción ( throw ) que a su vez debería capturar ( catch ) y resolver la situación de error, o poder ser tratada finalmente ( finally ) por un gestor por defecto u omisión. Definición Las excepciones son formas muy limpias de manejar errores y problemas inesperados en la lógica del programa. Gestión de Errores
  • 3. Tipos de Excepciones Exception: Conjunto de excepciones que el programa debe capturar y resolver. Subclases  RuntimeException, ArithmeticException, IndexOutOfBoundsException, NullPointerException, etc. Gestión de Errores Error: Son fallos de tipo catastrófico, originan la parada del programa. Subclases  AWTError, LinkageError, ThreadDeath, VirtualMachineError, etc.
  • 4. Excepciones Predefinidas Los nombres de las excepciones indican la condición de error que representan. Las siguientes son las excepciones predefinidas más frecuentes que se pueden encontrar: ArithmeticException Las excepciones aritméticas son típicamente el resultado de división por 0: int i = 12 / 0; Gestión de Errores
  • 5. Excepciones Predefinidas Gestión de Errores IncompatibleClassChangeException El intento de cambiar una clase afectada por referencias en otros objetos, específicamente cuando esos objetos todavía no han sido recompilados. ClassCastException El intento de convertir un objeto a otra clase que no es válida. NullPointerException Se produce cuando se intenta acceder a una variable o método antes de ser definido.
  • 6. Excepciones Predefinidas Gestión de Errores NegativeArraySizeException Puede ocurrir si hay un error aritmético al cambiar el tamaño de un array. NoClassDefFoundException Se referenció una clase que el sistema es incapaz de encontrar. ArrayIndexOutOfBoundsException Se genera al intentar acceder a un elemento de un array más allá de los límites definidos inicialmente para ese array.
  • 7. Excepciones Predefinidas Gestión de Errores UnsatisfiedLinkException Se intenta de acceder a un método nativo que no existe. InternalException Este error se reserva para eventos que no deberían ocurrir. Por definición, el usuario nunca debería ver este error y esta excepción no debería lanzarse.
  • 8. Excepciones Propias También el programador puede lanzar sus propias excepciones, extendiendo la clase System.exception . Por ejemplo, considérese un programa cliente/servidor. El código cliente se intenta conectar al servidor, y durante 5 segundos se espera a que conteste el servidor. Si el servidor no responde, el servidor lanzaría la excepción de time-out  Gestión de Errores
  • 9. Excepciones Propias Gestión de Errores class ServerTimeOutException extends Exception {} public void conectame( String nombreServidor ) throws Exception { int exito; int puerto = 80; exito = open( nombreServidor,puerto ); if( exito == -1 ) throw ServerTimeOutException; } Excepciones Predefinidas
  • 10. public void encuentraServidor() { try { conectame( servidorDefecto ); catch( ServerTimeOutException e ) { g.drawString( "Time-out del Servidor, intentando alternativa",5,5 ); conectame( servidorAlterno ); } } Excepciones Propias Gestión de Errores Excepciones Propias
  • 11. Captura de Excepciones Gestión de Errores Las excepciones lanzadas por un método que pueda hacerlo deben recoger en bloque try/catch o try/finally. try Es el bloque de código donde se previene que se genere una excepción. El bloque try tiene que ir seguido, al menos, por una cláusula catch o una cláusula finally. try { // Sentencias Java }
  • 12. Captura de Excepciones Gestión de Errores catch Es el código que se ejecuta cuando se produce la excepción. No hay código alguno entre un bloque try y un bloque catch , ni entre bloques catch . La sintaxis general de la sentencia catch en Java es la siguiente: catch( UnTipoTrhowable nombreVariable ) { // sentencias Java }
  • 13. Captura de Excepciones Gestión de Errores try Es el bloque de código que se ejecuta siempre, haya o no excepción. Este bloque finally puede ser útil cuando no hay ninguna excepción. Es un trozo de código que se ejecuta independientemente de lo que se haga en el bloque try .
  • 14. Captura de Excepciones Gestión de Errores throw La sentencia throw se utiliza para lanzar explícitamente una excepción. En primer lugar se debe obtener un descriptor de un objeto Throwable , bien mediante un parámetro en una cláusula catch o, se puede crear utilizando el operador new. La forma general de la sentencia throw es: throw ObjetoThrowable;
  • 15. Captura de Excepciones Gestión de Errores throws Si un método es capaz de provocar una excepción que no maneja él mismo, debería especificar este comportamiento, para que todos los métodos que lo llamen puedan colocar protecciones frente a esa excepción. La palabra clave throws se utiliza para identificar la lista posible de excepciones que un método puede lanzar.
  • 16. Ejemplo Gestión de Errores public class ValidacionNumero { public static void main(String[] args) { boolean esNumero = false; int nro = 0; String txtNro = null; do{ txtNro = JOptionPane.showInputDialog("Ingrese un nro. "); try{ nro = Integer.parseInt(txtNro); esNumero = true; }catch(NumberFormatException nfe){ System.out.println("ERROR. No ha ingresado un nro."); } }while(esNumero == false); JOptionPane.showMessageDialog(null, "El nro ingresado fue el: " + nro, "Resultado", JOptionPane.INFORMATION_MESSAGE); System.exit(0); } } .