SlideShare una empresa de Scribd logo
1 de 5
LAS EXCEPCIONES STANDAR
Los programadores de cualquier lenguaje se esfuerzan por escribir programas libres
de errores, sin embargo, es muy difícil que los programas reales se vean libres de
ellos. En Java las situaciones que pueden provocar un fallo en el programa se
denominan excepciones.
Java lanza una excepción en respuesta a una situación poco usual. El programador
también puede lanzar sus propias excepciones. Las excepciones en Java son objetos
de clases derivadas de la clase base Exception. Existen también los errores internos
que son objetos de la clase Error que no estudiaremos. Ambas
clases Error y Exception son clases derivadas de la clase base Throwable.
Existe toda una jerarquía de clases derivada de la clase base Exception. Estas clases
derivadas se ubican en dos grupos principales:
Las excepciones en tiempo de ejecución ocurren cuando el programador no ha tenido
cuidado al escribir su código. Por ejemplo, cuando se sobrepasa la dimensión de un
array se lanza una excepción ArrayIndexOutOfBounds. Cuando se hace uso de una
referencia a un objeto que no ha sido creado se lanza la
excepción NullPointerException. Estas excepciones le indican al programador que
tipos de fallos tiene el programa y que debe arreglarlo antes de proseguir.
El segundo grupo de excepciones, es el más interesante, ya que indican que ha
sucedido algo inesperado o fuera de control.
Las excepciones
En la página dedicada al estudio de la clase String, mencionamos una función que
convierte un string en un número. Esta función es muy usuada cuando creamos
applets. Introducimos el número en un control de edición, se obtiene el texto y se
guarda en un string. Luego, se convierte el string en número entero mediante la
función estática Integer.parseInt, y finalmente, usamos dicho número.
String str=" 12 ";
int numero=Integer.parseInt(str);
Si se introducen caracteres no numéricos, o no se quitan los espacios en blanco al
principio y al final del string, mediante la función trim, se lanza una
excepción NumberFormatException.
AppAccelerator(tm) 1.1.034 for Java (JDK 1.1), x86 version.
Copyright (c) 1998 Borland International. All Rights Reserved.
java.lang.NumberFormatException: 12
at java.lang.Integer.parseInt(Compiled Code)
at java.lang.Integer.parseInt(Integer.java:390)
at excepcion.ExcepcionApp.main(ExcepcionApp.java:8)
Para ver este texto, se selecciona el elemento del menú del IDE Run/Parematers. En el
cuadro de diálogo que aparece activar el botón de radio Set run output to Execution
Log. Luego, se corre la aplicación Run/Run. Se selecciona el elemento del
menú View/Execution Log, para que se muestre en una ventana la salida del
programa. Para restaurar la salida a la consola, la ventana DOS, se selecciona de
nuevo Run/Parematers. En el cuadro de diálogo que aparece, se activa el botón de
radio Set run output to Console window.
El mensaje que aparece en la ventana nos indica el tipo de
excepción NumberFormatException, la función que la ha lanzado Integer.parseInt,
que se llama dentro de main.
Objeto no inicializado
Habitualmente, cuando llamanos desde un objeto no inicializado, a una función
miembro.
public static void main(String[] args) {
String str;
str.length();
//...
}
El compilador se queja con el siguiente mensaje "variable str might not have been
initilized". En otras ocasiones, se lanza una excepción del
tipo NulPointerException. Fijarse que en la porción de código que sigue, grafico es
una variable de instancia que es inicializada por defecto a null.
class MiCanvas....{
Grafico grafico;
public void paint(...){
grafico.dibuja();
//...
}
//...
}
Como vemos en la porción de código, si al llamarse a la función paint, el
objeto grafico no ha sido inicializado con el valor devuelto por new al crear un objeto
de la clase Grafico o de alguna de sus clases derivadas, se lanza la
excepción NullPointerException apareciendo en la consola el siguiente texto.
Exception occurred during event dispatching:
java.lang.NullPointerException
at grafico1.MiCanvas.paint(MiCanvas.java:43)
at sun.awt.windows.WComponentPeer.handleEvent(Compiled Code)
at java.awt.Component.dispatchEventImpl(Compiled Code)
at java.awt.Component.dispatchEvent(Compiled Code)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Entrada/salida
En otras situaciones el mensaje de error aparece en el momento en el que se compila
el programa. Así, cuando intentamos leer un carácter del teclado, llamamos a la la
función
System.in.read();
Cuando compilamos el programa, nos aparece un mensaje de error que no nos deja
proseguir.
unreported exception: java.io.IOException; must be caught or declared to be
thrown
Captura de las excepciones
Empecemos por solucionar el error que se produce en el programa durante la
compilación. Tal como indica el mensaje que genera el compilador, se ha de poner la
sentencia System.in.read(); en un bloque try...catch, del siguiente modo.
try {
System.in.read();
}catch (IOException ex) { }
Para solucionar el error que se produce en el programa durante su ejecución, se debe
poner la llamada a Integer.parseInt en el siguiente bloque try...catch.
String str=" 12 ";
int numero;
try{
numero=Integer.parseInt(str);
}catch(NumberFormatException ex){
System.out.println("No es un número");
}
En el caso de que el string str contenga caracteres no numéricos como es éste el caso,
el número 12 está acompñado de espacios en blanco, se produce una excepción del
tipo NumberFormatException que es capturada y se imprime el mensaje "No es un
número".
En vez de un mensaje propio se puede imprimir el objeto ex de la
clase NumberFormatException
try{
//...
}catch(NumberFormatException ex){
System.out.println(ex);
}
La clase base Throwable de todas las clases que describen las excepciones, redefine la
función toString, que devuelve el nombre de la clase que describe la excepción
acompañado del mensaje asociado, que en este caso es el propio string str.
java.lang.NumberFormatException: 12
Podemos extraer dicho mensaje mediante la función miembro getMessage, del
siguiente modo
try{
//...
}catch(NumberFormatException ex){
System.out.println(ex.getMessage());
}
Manejando varias excepciones
Vamos a crear un programa que divida dos números. Supongamos que los números se
introducen én dos controles de edicion. Se obtiene el texto de cada uno de los
controles de edición que se guardan en dos strings. En esta situación se pueden
producir dos excepciones NumberFormatException, si se introducen caracteres no
numéricos y ArithmeticException sise divide entre cero.
public class ExcepcionApp {
public static void main(String[] args) {
String str1="12";
String str2="0";
String respuesta;
int numerador, denominador, cociente;
try{
numerador=Integer.parseInt(str1);
denominador=Integer.parseInt(str2);
cociente=numerador/denominador;
respuesta=String.valueOf(cociente);
}catch(NumberFormatException ex){
respuesta="Se han introducido caracteres no numéricos";
}catch(ArithmeticException ex){
respuesta="División entre cero";
}
System.out.println(respuesta);
}
}
Como vemos las sentencias susceptibles de lanzar una excepción se sitúan en un
bloque try...catch. Si el denominador es cero, se produce una excepción de la
clase ArithmeticException en la expresión que halla el cociente, que es
inmediatamente capturada en el bloque catch que maneja dicha excepción,
ejecutándose las sentencias que hay en dicho bloque. En este caso se guarda en el
string respuesta el texto "División entre cero".
Hay veces en las que se desea estar seguro de que un bloque de código se ejecute se
produzcan o no excepciones. Se puede hacer esto añadiendo un bloque finallydespués
del último catch. Esto es importante cuando accedemos a archivos, para asegurar que
se cerrará siempre un archivo se produzca o no un error en el proceso de
lectura/escritura.
try{
//Este código puede generar una excepción
}catch(Exception ex){
//Este código se ejecuta cuando se produce una excepción
}finally{
//Este código se ejecuta se produzca o no una excepción
}

Más contenido relacionado

La actualidad más candente (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
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Java exceptions
Java exceptionsJava exceptions
Java exceptions
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
 
Exceptions (2)
Exceptions (2)Exceptions (2)
Exceptions (2)
 
Lab excepciones
Lab excepcionesLab excepciones
Lab excepciones
 
Semana 8 excepciones definidas por el usuario
Semana 8 excepciones definidas por el usuarioSemana 8 excepciones definidas por el usuario
Semana 8 excepciones definidas por el usuario
 
Programación III (Java) - 04 Excepciones
Programación III (Java) - 04 ExcepcionesProgramación III (Java) - 04 Excepciones
Programación III (Java) - 04 Excepciones
 
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
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
unidad 5 excepciones propias
unidad 5 excepciones propiasunidad 5 excepciones propias
unidad 5 excepciones propias
 
Tipos de excepciones
Tipos de excepcionesTipos de excepciones
Tipos de excepciones
 
Clase string y manejo de excepciones
Clase string y manejo de excepcionesClase string y manejo de excepciones
Clase string y manejo de excepciones
 
Guia demanejodeexcepcionesaserciones
Guia demanejodeexcepcionesasercionesGuia demanejodeexcepcionesaserciones
Guia demanejodeexcepcionesaserciones
 
Resumen claudia u5
Resumen claudia u5Resumen claudia u5
Resumen claudia u5
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Errores
ErroresErrores
Errores
 
Lab excepciones propias
Lab excepciones propiasLab excepciones propias
Lab excepciones propias
 

Destacado

SQL-DDL
SQL-DDLSQL-DDL
SQL-DDLbdatos
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing Laura
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 

Destacado (8)

Java
JavaJava
Java
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
Servicio web soap en java con net beans
Servicio web soap en java con net beansServicio web soap en java con net beans
Servicio web soap en java con net beans
 
Ejemplo ddl dml
Ejemplo ddl dmlEjemplo ddl dml
Ejemplo ddl dml
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 

Similar a Las excepciones standar

Tabbed pane y excepciones
Tabbed pane y excepcionesTabbed pane y excepciones
Tabbed pane y excepcionesaleja0940
 
Estructuras de control try catch
Estructuras de control try catchEstructuras de control try catch
Estructuras de control try catchjbersosa
 
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosLenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosmellcv
 
[ES] Manejo de datos y excepciones
[ES] Manejo de datos y excepciones[ES] Manejo de datos y excepciones
[ES] Manejo de datos y excepcionesEudris Cabrera
 
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
 
Tema 4 excepciones por gio
Tema 4   excepciones por gioTema 4   excepciones por gio
Tema 4 excepciones por gioRobert Wolf
 
Manuales ...
Manuales ...Manuales ...
Manuales ...elidetjc
 
C6 net beansentradasysalidas
C6 net beansentradasysalidasC6 net beansentradasysalidas
C6 net beansentradasysalidasalenco
 
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018Eudris Cabrera
 
Tema 10 excepciones
Tema 10 excepcionesTema 10 excepciones
Tema 10 excepcionesjbersosa
 

Similar a Las excepciones standar (20)

Tabbed pane y excepciones
Tabbed pane y excepcionesTabbed pane y excepciones
Tabbed pane y excepciones
 
Estructuras de control try catch
Estructuras de control try catchEstructuras de control try catch
Estructuras de control try catch
 
Java5
Java5Java5
Java5
 
Javaintroduccion 2010
Javaintroduccion 2010Javaintroduccion 2010
Javaintroduccion 2010
 
Taller 1 4
Taller 1 4Taller 1 4
Taller 1 4
 
Capitulo II
Capitulo IICapitulo II
Capitulo II
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Try catch
Try catchTry catch
Try catch
 
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosLenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptos
 
[ES] Manejo de datos y excepciones
[ES] Manejo de datos y excepciones[ES] Manejo de datos y excepciones
[ES] Manejo de datos y excepciones
 
Gestion de errores en java
Gestion de errores en javaGestion de errores en java
Gestion de errores 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
 
Tema 4 excepciones por gio
Tema 4   excepciones por gioTema 4   excepciones por gio
Tema 4 excepciones por gio
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Manuales ...
Manuales ...Manuales ...
Manuales ...
 
C6 net beansentradasysalidas
C6 net beansentradasysalidasC6 net beansentradasysalidas
C6 net beansentradasysalidas
 
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
 
2.Introducción a las aplicaciones en java
2.Introducción a las aplicaciones en java2.Introducción a las aplicaciones en java
2.Introducción a las aplicaciones en java
 
Tema 10 excepciones
Tema 10 excepcionesTema 10 excepciones
Tema 10 excepciones
 

Más de jbersosa

Clasen1java
Clasen1javaClasen1java
Clasen1javajbersosa
 
Programación java1
Programación java1Programación java1
Programación java1jbersosa
 
Tercercortesistop
TercercortesistopTercercortesistop
Tercercortesistopjbersosa
 
Encapsulacion
EncapsulacionEncapsulacion
Encapsulacionjbersosa
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principaljbersosa
 
Auditoria 2
Auditoria 2Auditoria 2
Auditoria 2jbersosa
 
Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891jbersosa
 
Auditoria informatica
Auditoria informaticaAuditoria informatica
Auditoria informaticajbersosa
 
Auditoria de sistemas (1)
Auditoria de sistemas (1)Auditoria de sistemas (1)
Auditoria de sistemas (1)jbersosa
 
Auditoría de sistemas de información presentación
Auditoría de sistemas de información presentaciónAuditoría de sistemas de información presentación
Auditoría de sistemas de información presentaciónjbersosa
 
Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...jbersosa
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosjbersosa
 
Estructura de una red
Estructura de una redEstructura de una red
Estructura de una redjbersosa
 
Proyectodeprogramacinidesegundocorte2015 2
Proyectodeprogramacinidesegundocorte2015 2Proyectodeprogramacinidesegundocorte2015 2
Proyectodeprogramacinidesegundocorte2015 2jbersosa
 
Bases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper reportBases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper reportjbersosa
 
Continuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper reportContinuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper reportjbersosa
 
Continuacion ejemplo de base de datos y reports con jasper report
Continuacion ejemplo de base de datos y reports con jasper reportContinuacion ejemplo de base de datos y reports con jasper report
Continuacion ejemplo de base de datos y reports con jasper reportjbersosa
 
Ejemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportEjemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportjbersosa
 

Más de jbersosa (20)

Main
MainMain
Main
 
Clasen1java
Clasen1javaClasen1java
Clasen1java
 
Programación java1
Programación java1Programación java1
Programación java1
 
Tercercortesistop
TercercortesistopTercercortesistop
Tercercortesistop
 
Encapsulacion
EncapsulacionEncapsulacion
Encapsulacion
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principal
 
Auditoria 2
Auditoria 2Auditoria 2
Auditoria 2
 
Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891
 
Auditoria informatica
Auditoria informaticaAuditoria informatica
Auditoria informatica
 
Auditoria de sistemas (1)
Auditoria de sistemas (1)Auditoria de sistemas (1)
Auditoria de sistemas (1)
 
Auditoría de sistemas de información presentación
Auditoría de sistemas de información presentaciónAuditoría de sistemas de información presentación
Auditoría de sistemas de información presentación
 
Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Php
PhpPhp
Php
 
Estructura de una red
Estructura de una redEstructura de una red
Estructura de una red
 
Proyectodeprogramacinidesegundocorte2015 2
Proyectodeprogramacinidesegundocorte2015 2Proyectodeprogramacinidesegundocorte2015 2
Proyectodeprogramacinidesegundocorte2015 2
 
Bases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper reportBases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper report
 
Continuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper reportContinuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper report
 
Continuacion ejemplo de base de datos y reports con jasper report
Continuacion ejemplo de base de datos y reports con jasper reportContinuacion ejemplo de base de datos y reports con jasper report
Continuacion ejemplo de base de datos y reports con jasper report
 
Ejemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper reportEjemplo de base de datos y reports con jasper report
Ejemplo de base de datos y reports con jasper report
 

Último

la CELULA. caracteristicas, funciones, i
la CELULA. caracteristicas, funciones, ila CELULA. caracteristicas, funciones, i
la CELULA. caracteristicas, funciones, iBACAURBINAErwinarnol
 
GENERALIDADES SOBRE LA CESAREA, RESIDENCIA DE GINECOLOGIA Y OBSTETRICIA
GENERALIDADES SOBRE LA CESAREA, RESIDENCIA DE GINECOLOGIA Y OBSTETRICIAGENERALIDADES SOBRE LA CESAREA, RESIDENCIA DE GINECOLOGIA Y OBSTETRICIA
GENERALIDADES SOBRE LA CESAREA, RESIDENCIA DE GINECOLOGIA Y OBSTETRICIAYinetCastilloPea
 
UNIDAD DE APRENDIZAJE ABRIL Y MAYO 2024.docx
UNIDAD DE APRENDIZAJE ABRIL Y MAYO 2024.docxUNIDAD DE APRENDIZAJE ABRIL Y MAYO 2024.docx
UNIDAD DE APRENDIZAJE ABRIL Y MAYO 2024.docxRosiChucasDiaz
 
Asfixia por confinamiento en medicina legal.pptx
Asfixia por confinamiento en medicina legal.pptxAsfixia por confinamiento en medicina legal.pptx
Asfixia por confinamiento en medicina legal.pptxanalaurafrancomolina
 
alimentacion en mujer embarazada y lactante
alimentacion en mujer embarazada y lactantealimentacion en mujer embarazada y lactante
alimentacion en mujer embarazada y lactantealejandra674717
 
21542401-Historia-Natural-Del-Infarto-Agudo-de-Miocardio.pdf
21542401-Historia-Natural-Del-Infarto-Agudo-de-Miocardio.pdf21542401-Historia-Natural-Del-Infarto-Agudo-de-Miocardio.pdf
21542401-Historia-Natural-Del-Infarto-Agudo-de-Miocardio.pdfHANNIBALRAMOS
 
NERVIO OLFATORIO. PARES CRANEALES. SISTEMA NERVIOSO
NERVIO OLFATORIO. PARES CRANEALES. SISTEMA NERVIOSONERVIO OLFATORIO. PARES CRANEALES. SISTEMA NERVIOSO
NERVIO OLFATORIO. PARES CRANEALES. SISTEMA NERVIOSOEPICRISISHQN1
 
DOCUMENTOS MÉDICO LEGALES EN MEDICINA LEGAL Y FORENSE.pptx
DOCUMENTOS MÉDICO LEGALES EN MEDICINA LEGAL Y FORENSE.pptxDOCUMENTOS MÉDICO LEGALES EN MEDICINA LEGAL Y FORENSE.pptx
DOCUMENTOS MÉDICO LEGALES EN MEDICINA LEGAL Y FORENSE.pptxfarmaciasanmigueltx
 
musculos y partes del tronco clase de medicina.pdf
musculos y partes del tronco clase de medicina.pdfmusculos y partes del tronco clase de medicina.pdf
musculos y partes del tronco clase de medicina.pdfKelymarHernandez
 
CASO NEONATAL ictericia Rev MH 04.2024.pdf
CASO NEONATAL ictericia Rev MH 04.2024.pdfCASO NEONATAL ictericia Rev MH 04.2024.pdf
CASO NEONATAL ictericia Rev MH 04.2024.pdfMAHINOJOSA45
 
meninges craneales anatomía segundo año Guatemala
meninges craneales anatomía segundo año Guatemalameninges craneales anatomía segundo año Guatemala
meninges craneales anatomía segundo año Guatemala2811436330101
 
Mecanismo de trabajo de parto en presentación de cefalica de vértice
Mecanismo de trabajo de parto en presentación de cefalica de vérticeMecanismo de trabajo de parto en presentación de cefalica de vértice
Mecanismo de trabajo de parto en presentación de cefalica de vérticeNayara Velasquez
 
Aparato digestivo (irrigación, internación, anatomía)
Aparato digestivo (irrigación, internación, anatomía)Aparato digestivo (irrigación, internación, anatomía)
Aparato digestivo (irrigación, internación, anatomía)Majo472137
 
Clase 13 Artrologia Cintura Escapular 2024.pdf
Clase 13 Artrologia Cintura Escapular 2024.pdfClase 13 Artrologia Cintura Escapular 2024.pdf
Clase 13 Artrologia Cintura Escapular 2024.pdfgarrotamara01
 
Infecciones de la piel y partes blandas(Impétigo, celulitis, erisipela, absce...
Infecciones de la piel y partes blandas(Impétigo, celulitis, erisipela, absce...Infecciones de la piel y partes blandas(Impétigo, celulitis, erisipela, absce...
Infecciones de la piel y partes blandas(Impétigo, celulitis, erisipela, absce... Estefa RM9
 
urgencia y emergencia. Diferencias y ejemplos
urgencia y emergencia. Diferencias y ejemplosurgencia y emergencia. Diferencias y ejemplos
urgencia y emergencia. Diferencias y ejemploscosentinojorgea
 
tecnicas practivas DIGITOPUNTURA SHIATZU.ppt
tecnicas practivas DIGITOPUNTURA SHIATZU.ppttecnicas practivas DIGITOPUNTURA SHIATZU.ppt
tecnicas practivas DIGITOPUNTURA SHIATZU.pptLEONCIOVASQUEZMARIN2
 
Clase 14 Articulacion del Codo y Muñeca 2024.pdf
Clase 14 Articulacion del Codo y Muñeca 2024.pdfClase 14 Articulacion del Codo y Muñeca 2024.pdf
Clase 14 Articulacion del Codo y Muñeca 2024.pdfgarrotamara01
 

Último (20)

la CELULA. caracteristicas, funciones, i
la CELULA. caracteristicas, funciones, ila CELULA. caracteristicas, funciones, i
la CELULA. caracteristicas, funciones, i
 
GENERALIDADES SOBRE LA CESAREA, RESIDENCIA DE GINECOLOGIA Y OBSTETRICIA
GENERALIDADES SOBRE LA CESAREA, RESIDENCIA DE GINECOLOGIA Y OBSTETRICIAGENERALIDADES SOBRE LA CESAREA, RESIDENCIA DE GINECOLOGIA Y OBSTETRICIA
GENERALIDADES SOBRE LA CESAREA, RESIDENCIA DE GINECOLOGIA Y OBSTETRICIA
 
UNIDAD DE APRENDIZAJE ABRIL Y MAYO 2024.docx
UNIDAD DE APRENDIZAJE ABRIL Y MAYO 2024.docxUNIDAD DE APRENDIZAJE ABRIL Y MAYO 2024.docx
UNIDAD DE APRENDIZAJE ABRIL Y MAYO 2024.docx
 
Asfixia por confinamiento en medicina legal.pptx
Asfixia por confinamiento en medicina legal.pptxAsfixia por confinamiento en medicina legal.pptx
Asfixia por confinamiento en medicina legal.pptx
 
alimentacion en mujer embarazada y lactante
alimentacion en mujer embarazada y lactantealimentacion en mujer embarazada y lactante
alimentacion en mujer embarazada y lactante
 
Neumonia complicada en niños y pediatria vrs neumonia grave, gérmenes, nuevas...
Neumonia complicada en niños y pediatria vrs neumonia grave, gérmenes, nuevas...Neumonia complicada en niños y pediatria vrs neumonia grave, gérmenes, nuevas...
Neumonia complicada en niños y pediatria vrs neumonia grave, gérmenes, nuevas...
 
21542401-Historia-Natural-Del-Infarto-Agudo-de-Miocardio.pdf
21542401-Historia-Natural-Del-Infarto-Agudo-de-Miocardio.pdf21542401-Historia-Natural-Del-Infarto-Agudo-de-Miocardio.pdf
21542401-Historia-Natural-Del-Infarto-Agudo-de-Miocardio.pdf
 
NERVIO OLFATORIO. PARES CRANEALES. SISTEMA NERVIOSO
NERVIO OLFATORIO. PARES CRANEALES. SISTEMA NERVIOSONERVIO OLFATORIO. PARES CRANEALES. SISTEMA NERVIOSO
NERVIO OLFATORIO. PARES CRANEALES. SISTEMA NERVIOSO
 
DOCUMENTOS MÉDICO LEGALES EN MEDICINA LEGAL Y FORENSE.pptx
DOCUMENTOS MÉDICO LEGALES EN MEDICINA LEGAL Y FORENSE.pptxDOCUMENTOS MÉDICO LEGALES EN MEDICINA LEGAL Y FORENSE.pptx
DOCUMENTOS MÉDICO LEGALES EN MEDICINA LEGAL Y FORENSE.pptx
 
(2024-04-17) ULCERADEMARTORELL (ppt).pdf
(2024-04-17) ULCERADEMARTORELL (ppt).pdf(2024-04-17) ULCERADEMARTORELL (ppt).pdf
(2024-04-17) ULCERADEMARTORELL (ppt).pdf
 
musculos y partes del tronco clase de medicina.pdf
musculos y partes del tronco clase de medicina.pdfmusculos y partes del tronco clase de medicina.pdf
musculos y partes del tronco clase de medicina.pdf
 
CASO NEONATAL ictericia Rev MH 04.2024.pdf
CASO NEONATAL ictericia Rev MH 04.2024.pdfCASO NEONATAL ictericia Rev MH 04.2024.pdf
CASO NEONATAL ictericia Rev MH 04.2024.pdf
 
meninges craneales anatomía segundo año Guatemala
meninges craneales anatomía segundo año Guatemalameninges craneales anatomía segundo año Guatemala
meninges craneales anatomía segundo año Guatemala
 
Mecanismo de trabajo de parto en presentación de cefalica de vértice
Mecanismo de trabajo de parto en presentación de cefalica de vérticeMecanismo de trabajo de parto en presentación de cefalica de vértice
Mecanismo de trabajo de parto en presentación de cefalica de vértice
 
Aparato digestivo (irrigación, internación, anatomía)
Aparato digestivo (irrigación, internación, anatomía)Aparato digestivo (irrigación, internación, anatomía)
Aparato digestivo (irrigación, internación, anatomía)
 
Clase 13 Artrologia Cintura Escapular 2024.pdf
Clase 13 Artrologia Cintura Escapular 2024.pdfClase 13 Artrologia Cintura Escapular 2024.pdf
Clase 13 Artrologia Cintura Escapular 2024.pdf
 
Infecciones de la piel y partes blandas(Impétigo, celulitis, erisipela, absce...
Infecciones de la piel y partes blandas(Impétigo, celulitis, erisipela, absce...Infecciones de la piel y partes blandas(Impétigo, celulitis, erisipela, absce...
Infecciones de la piel y partes blandas(Impétigo, celulitis, erisipela, absce...
 
urgencia y emergencia. Diferencias y ejemplos
urgencia y emergencia. Diferencias y ejemplosurgencia y emergencia. Diferencias y ejemplos
urgencia y emergencia. Diferencias y ejemplos
 
tecnicas practivas DIGITOPUNTURA SHIATZU.ppt
tecnicas practivas DIGITOPUNTURA SHIATZU.ppttecnicas practivas DIGITOPUNTURA SHIATZU.ppt
tecnicas practivas DIGITOPUNTURA SHIATZU.ppt
 
Clase 14 Articulacion del Codo y Muñeca 2024.pdf
Clase 14 Articulacion del Codo y Muñeca 2024.pdfClase 14 Articulacion del Codo y Muñeca 2024.pdf
Clase 14 Articulacion del Codo y Muñeca 2024.pdf
 

Las excepciones standar

  • 1. LAS EXCEPCIONES STANDAR Los programadores de cualquier lenguaje se esfuerzan por escribir programas libres de errores, sin embargo, es muy difícil que los programas reales se vean libres de ellos. En Java las situaciones que pueden provocar un fallo en el programa se denominan excepciones. Java lanza una excepción en respuesta a una situación poco usual. El programador también puede lanzar sus propias excepciones. Las excepciones en Java son objetos de clases derivadas de la clase base Exception. Existen también los errores internos que son objetos de la clase Error que no estudiaremos. Ambas clases Error y Exception son clases derivadas de la clase base Throwable. Existe toda una jerarquía de clases derivada de la clase base Exception. Estas clases derivadas se ubican en dos grupos principales: Las excepciones en tiempo de ejecución ocurren cuando el programador no ha tenido cuidado al escribir su código. Por ejemplo, cuando se sobrepasa la dimensión de un array se lanza una excepción ArrayIndexOutOfBounds. Cuando se hace uso de una referencia a un objeto que no ha sido creado se lanza la excepción NullPointerException. Estas excepciones le indican al programador que tipos de fallos tiene el programa y que debe arreglarlo antes de proseguir. El segundo grupo de excepciones, es el más interesante, ya que indican que ha sucedido algo inesperado o fuera de control. Las excepciones En la página dedicada al estudio de la clase String, mencionamos una función que convierte un string en un número. Esta función es muy usuada cuando creamos applets. Introducimos el número en un control de edición, se obtiene el texto y se guarda en un string. Luego, se convierte el string en número entero mediante la función estática Integer.parseInt, y finalmente, usamos dicho número. String str=" 12 "; int numero=Integer.parseInt(str);
  • 2. Si se introducen caracteres no numéricos, o no se quitan los espacios en blanco al principio y al final del string, mediante la función trim, se lanza una excepción NumberFormatException. AppAccelerator(tm) 1.1.034 for Java (JDK 1.1), x86 version. Copyright (c) 1998 Borland International. All Rights Reserved. java.lang.NumberFormatException: 12 at java.lang.Integer.parseInt(Compiled Code) at java.lang.Integer.parseInt(Integer.java:390) at excepcion.ExcepcionApp.main(ExcepcionApp.java:8) Para ver este texto, se selecciona el elemento del menú del IDE Run/Parematers. En el cuadro de diálogo que aparece activar el botón de radio Set run output to Execution Log. Luego, se corre la aplicación Run/Run. Se selecciona el elemento del menú View/Execution Log, para que se muestre en una ventana la salida del programa. Para restaurar la salida a la consola, la ventana DOS, se selecciona de nuevo Run/Parematers. En el cuadro de diálogo que aparece, se activa el botón de radio Set run output to Console window. El mensaje que aparece en la ventana nos indica el tipo de excepción NumberFormatException, la función que la ha lanzado Integer.parseInt, que se llama dentro de main. Objeto no inicializado Habitualmente, cuando llamanos desde un objeto no inicializado, a una función miembro. public static void main(String[] args) { String str; str.length(); //... } El compilador se queja con el siguiente mensaje "variable str might not have been initilized". En otras ocasiones, se lanza una excepción del tipo NulPointerException. Fijarse que en la porción de código que sigue, grafico es una variable de instancia que es inicializada por defecto a null. class MiCanvas....{ Grafico grafico; public void paint(...){ grafico.dibuja(); //... } //... }
  • 3. Como vemos en la porción de código, si al llamarse a la función paint, el objeto grafico no ha sido inicializado con el valor devuelto por new al crear un objeto de la clase Grafico o de alguna de sus clases derivadas, se lanza la excepción NullPointerException apareciendo en la consola el siguiente texto. Exception occurred during event dispatching: java.lang.NullPointerException at grafico1.MiCanvas.paint(MiCanvas.java:43) at sun.awt.windows.WComponentPeer.handleEvent(Compiled Code) at java.awt.Component.dispatchEventImpl(Compiled Code) at java.awt.Component.dispatchEvent(Compiled Code) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Entrada/salida En otras situaciones el mensaje de error aparece en el momento en el que se compila el programa. Así, cuando intentamos leer un carácter del teclado, llamamos a la la función System.in.read(); Cuando compilamos el programa, nos aparece un mensaje de error que no nos deja proseguir. unreported exception: java.io.IOException; must be caught or declared to be thrown Captura de las excepciones Empecemos por solucionar el error que se produce en el programa durante la compilación. Tal como indica el mensaje que genera el compilador, se ha de poner la sentencia System.in.read(); en un bloque try...catch, del siguiente modo. try { System.in.read(); }catch (IOException ex) { } Para solucionar el error que se produce en el programa durante su ejecución, se debe poner la llamada a Integer.parseInt en el siguiente bloque try...catch. String str=" 12 "; int numero; try{ numero=Integer.parseInt(str);
  • 4. }catch(NumberFormatException ex){ System.out.println("No es un número"); } En el caso de que el string str contenga caracteres no numéricos como es éste el caso, el número 12 está acompñado de espacios en blanco, se produce una excepción del tipo NumberFormatException que es capturada y se imprime el mensaje "No es un número". En vez de un mensaje propio se puede imprimir el objeto ex de la clase NumberFormatException try{ //... }catch(NumberFormatException ex){ System.out.println(ex); } La clase base Throwable de todas las clases que describen las excepciones, redefine la función toString, que devuelve el nombre de la clase que describe la excepción acompañado del mensaje asociado, que en este caso es el propio string str. java.lang.NumberFormatException: 12 Podemos extraer dicho mensaje mediante la función miembro getMessage, del siguiente modo try{ //... }catch(NumberFormatException ex){ System.out.println(ex.getMessage()); } Manejando varias excepciones Vamos a crear un programa que divida dos números. Supongamos que los números se introducen én dos controles de edicion. Se obtiene el texto de cada uno de los controles de edición que se guardan en dos strings. En esta situación se pueden producir dos excepciones NumberFormatException, si se introducen caracteres no numéricos y ArithmeticException sise divide entre cero. public class ExcepcionApp { public static void main(String[] args) { String str1="12"; String str2="0";
  • 5. String respuesta; int numerador, denominador, cociente; try{ numerador=Integer.parseInt(str1); denominador=Integer.parseInt(str2); cociente=numerador/denominador; respuesta=String.valueOf(cociente); }catch(NumberFormatException ex){ respuesta="Se han introducido caracteres no numéricos"; }catch(ArithmeticException ex){ respuesta="División entre cero"; } System.out.println(respuesta); } } Como vemos las sentencias susceptibles de lanzar una excepción se sitúan en un bloque try...catch. Si el denominador es cero, se produce una excepción de la clase ArithmeticException en la expresión que halla el cociente, que es inmediatamente capturada en el bloque catch que maneja dicha excepción, ejecutándose las sentencias que hay en dicho bloque. En este caso se guarda en el string respuesta el texto "División entre cero". Hay veces en las que se desea estar seguro de que un bloque de código se ejecute se produzcan o no excepciones. Se puede hacer esto añadiendo un bloque finallydespués del último catch. Esto es importante cuando accedemos a archivos, para asegurar que se cerrará siempre un archivo se produzca o no un error en el proceso de lectura/escritura. try{ //Este código puede generar una excepción }catch(Exception ex){ //Este código se ejecuta cuando se produce una excepción }finally{ //Este código se ejecuta se produzca o no una excepción }