SlideShare una empresa de Scribd logo
EXCEPCIONES PROPIAS
El lenguaje Java proporciona las clases que manejan casi cualquier tipo de excepción. Sin embargo, en
algunos casos se pueden presentar situaciones en la que producen excepciones que no están dentro del
lenguaje Java. En este tipo de caso se deben de programar excepciones propias.
En casos como: ingresar edades, estaturas o tamaños negativos, una aplicación puede fallar, por lo cual se
debería manejar las excepciones que le indiquen al programador que debe validar este error. Para crear una
excepción propia se debe programar una nueva clase que herede de Exception. En el siguiente código es un
ejemplo de cómo manejar la edad negativa con una excepción propia.
Lo primero que se debe hacer es programar la nueva excepción:
/**
* Excepción para manejar la edad negativa de una persona
* @author mac
* @version 1.0
*/
public class EdadNegativaException extends Exception {
/**
* Permite usar el constructor de la superclase con mensaje
* @param mensaje mensaje que se desea mostrar
*/
public EdadNegativaException(String mensaje) {
super(mensaje);
}
/**
* Permite manejar el constructor de la superclase que no usa parametros
*/
public EdadNegativaException() {
super();
}
}
Ahora se hace uso de la excepción:
/**
* Clase que muestra un ejemplo de cómo usar una excepción propia
* @author mac
* @version 1.0
*/
public class ManejoDeExcepcionesPropias {
public static void main(String[] args) {
int edad = 34;
Lenguaje de
programación
Técnica profesional en desarrollo de software
Profesor: Andrés Herrera R. Mail: jherrera@eam.edu.co
Laboratorio
Excepciones propias
Nombre:_________________________________________________________________________
2
String nombre= "Ana";
try {
System.out.println(crearPersona(edad, nombre).getEdad());
} catch (EdadNegativaException e) {
e.printStackTrace();
}
}
/**
* Se encarga de crear una nueva persona
* @param edad edad de la persona
* @param nombre nombre de la persona
* @return la nueva persona
* @throws EdadNegativaException error por agregar una edad negativa
*/
private static Persona crearPersona(int edad, String nombre) throws
EdadNegativaException {
if( edad < 0 ){
throw new EdadNegativaException("Error por agregar una edad negativa");
}
return new Persona(nombre, edad);
}
}
Como se puede ver en el código anterior, cuando se ingresa una edad negativa automáticamente se lanzar
una excepción (verificada) indicando que ha ocurrido un error, esto le advertirá a los programadores que
deben manejar el error ocurrido. Si desea lanzar una excepción no verificada se debería usar como
superclase a RuntimeException.
Asociar cada uno de los tipos de fallas graves en tiempo de ejecución con una clase Exception con
nombre apropiado ayuda a mejorar la claridad del programa.
Por convención, todos los nombres de las clases de excepciones deben terminar con la palabra
Exception.
De ser posible, se deben indicar las excepciones en los métodos mediante el uso de las clases de
excepciones existentes, en vez de crear nuevas. La API de Java contiene muchas clases de excepciones que
podrían ser adecuadas para el tipo de problema que el método necesite indicar.
Multi-catch
Es muy común que después de un bloque try haya varios bloques catch para manejar diversos tipos de
excepciones. Si los cuerpos de varios bloques catch son idénticos, el programador puede usar la nueva
característica multi-catch de Java SE7 para atrapar esos tipos de excepciones en un solo manejador catch y
realizar la misma tarea.
3
La sintaxis para el multi-catch es:
catch ( Ttpo1 | Ttpo2 | Ttpo3 e )
Cada tipo de excepción se separa de la siguiente con una barra vertical (|). La línea anterior de código indica
que es posible atrapar uno de los tipos especificados (o cualquier subclase de esos tipos) en el manejador de
excepciones. En una clausula multi-catch, se puede especificar cualquier cantidad de tipos Throwable.
Try con recursos
Por lo general, el código para liberar recursos debe colocarse en un bloque finally, para asegurar que se libere
un recurso sin importar que se hayan lanzado excepciones cuando se utilizó́ ese recurso en el bloque try
correspondiente. Hay una notación alternativa, la instrucción try con recursos (nueva en Java SE 7), que
simplifica la escritura de código en donde se obtienen uno o más recursos, se utilizan en un bloque try y se
liberan en el correspondiente bloque finally. Cada recurso debe ser un objeto de una clase que implemente a
la interfaz AutoCloseable; dicha clase tiene un método llamado close. La forma general de una instrucción try
con recursos es:
try ( NombreClase elObjeto = new NombreClaseO ) {
// aquí se usa elObjeto catch
}
catch ( Exception e ){
// atrapa las excepciones que ocurren al usar el recurso
}
Para asignar varios recursos en el paréntesis del bloque try, se debe agregar consecutivos separados por
punto y como (;).
PRACTICA
1- Cree un proyecto java y nómbrelo <<Manejo de Excepciones Propias>>.
2- Cree un paquete de nombre <<com.EAM.lenguaje.excepciones>>
3- Cree una clase de nombre <<ManejoDeExcepciones>> con el método main.
4- Cree una excepción de nombre <<RangoException>>. Programe un método que reciba como parámetro un numero entero.
Lance la excepción <<RangoException>> si el numero que entra como parámetros no esta entre el rango de 0 a 100.
Llame el método desde el main, use Scanner para obtener el dato de entrada.
5- Cree una excepción de nombre <<NombrePersonaException>>. Programe un método que reciba como parámetro una
cadena de texto, y lance la excepción <<NombrePersonaException>> si la cadena contiene un símbolo diferente a una
letra. Llame el método desde el main, use Scanner para obtener el dato de entrada.
6- Cree una excepción de nombre <<CorreoElectronicoException>>. Programe un método que reciba una cadena de texto
como parámetro, lance la excepción use esta excepción <<CorreoElectronicoException>> si la cadena no tiene el formato
de una correo electrónico. Llame el método desde el main, use Scanner para obtener el dato de entrada.
4
7- Programe en el método main una instrucción try que maneje las tres excepciones creadas en los puntos anteriores (debe
usar multi-catch).
8- Investigue y programe un ejemplo donde use un bloque try con recursos.
ENTREGABLE
Mostrar la Practica realizada en su totalidad.
BIBLIOGRAFÍA
Deitel, P. J. & Deitel, H. M. (2012). Como Programar en java. Novena edición. México: Prentice Hall.

Más contenido relacionado

PPTX
PPT
5.manejo de excepciones
PDF
Lab excepciones
PDF
Java excepciones
PDF
Manejo de excepciones en Java
RTF
Try catch
PPT
Gestión de errores en Java
DOCX
Mas sobre excepciones
5.manejo de excepciones
Lab excepciones
Java excepciones
Manejo de excepciones en Java
Try catch
Gestión de errores en Java
Mas sobre excepciones

La actualidad más candente (19)

PDF
excepciones en java
DOCX
Las excepciones standar
PPT
Manejo De Excepciones
PDF
unidad 5 excepciones propias
PDF
05 java excepciones
PDF
Guia demanejodeexcepcionesaserciones
PPT
Excepciones en java
PPT
Programación III (Java) - 04 Excepciones
PPT
excepciones_java en www.fiec.espol.edu.ec
PPTX
Constructores & excepciones
PDF
Cu00927 c gestion excepciones java try catch finally ejemplos ejercicios
PPT
Excepciones
PPTX
Portafolio
PPT
Java exceptions
DOCX
Excepciones en Java
PPT
Semana 8 excepciones definidas por el usuario
PPSX
Lenguaje java5 (presentación2)
PDF
Tema 4 excepciones por gio
excepciones en java
Las excepciones standar
Manejo De Excepciones
unidad 5 excepciones propias
05 java excepciones
Guia demanejodeexcepcionesaserciones
Excepciones en java
Programación III (Java) - 04 Excepciones
excepciones_java en www.fiec.espol.edu.ec
Constructores & excepciones
Cu00927 c gestion excepciones java try catch finally ejemplos ejercicios
Excepciones
Portafolio
Java exceptions
Excepciones en Java
Semana 8 excepciones definidas por el usuario
Lenguaje java5 (presentación2)
Tema 4 excepciones por gio
Publicidad

Similar a Lab excepciones propias (20)

PPTX
Gestión de Excepciones
PPT
excepciones en java
PPT
Java exceptions
PPT
EXCEPCIONES JAVA
PDF
Tema 10 excepciones
PDF
JAVA ORIENTADO A OBJETOS - EXCEPCIONES
PDF
Exceptions (2)
PPTX
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para guardar información
PPTX
Excepciones en java
PPT
Excepciones
PDF
Cap9 excepciones
PDF
Java5
PPT
1 1 5 Objetos Excepcion
 
PDF
Java oo tema09_excepciones
PPT
Excepciones
PPT
Excepciones
PDF
Jyoc java-cap12 excepciones
PDF
PPTX
05 Excepciones en Java presentacion.pptx
PPTX
Unidad 5: Excepciones Ejercicio 2
Gestión de Excepciones
excepciones en java
Java exceptions
EXCEPCIONES JAVA
Tema 10 excepciones
JAVA ORIENTADO A OBJETOS - EXCEPCIONES
Exceptions (2)
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para guardar información
Excepciones en java
Excepciones
Cap9 excepciones
Java5
1 1 5 Objetos Excepcion
 
Java oo tema09_excepciones
Excepciones
Excepciones
Jyoc java-cap12 excepciones
05 Excepciones en Java presentacion.pptx
Unidad 5: Excepciones Ejercicio 2
Publicidad

Más de Andres Herrera Rodriguez (16)

PDF
PDF
Laboratorio clase abstract
PDF
3. unidad 4 polimorfismo
PDF
Laboratorio interfaces
PDF
Laboratorio de polimorfismo
PDF
PDF
Lenguaje de programacion unidad 3 arreglos de objetos
PDF
Lenguaje de programacion laboratorio arreglos
PDF
Formularios HTML
PDF
PDF
Lenguaje de programacion unidad 2 clases y objetos
PDF
Lenguaje de programacion unidad 1 UML
PDF
programación WEB Unidad 1 html
PDF
Lectura y ejemplos clases y objetos
Laboratorio clase abstract
3. unidad 4 polimorfismo
Laboratorio interfaces
Laboratorio de polimorfismo
Lenguaje de programacion unidad 3 arreglos de objetos
Lenguaje de programacion laboratorio arreglos
Formularios HTML
Lenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 1 UML
programación WEB Unidad 1 html
Lectura y ejemplos clases y objetos

Último (20)

PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
ciencias-1.pdf libro cuarto basico niños
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PPTX
Welcome to the 7th Science Class 2025-2026 Online.pptx
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
Metodologías Activas con herramientas IAG
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
biología es un libro sobre casi todo el tema de biología
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
Punto Critico - Brian Tracy Ccesa007.pdf
Escuelas Desarmando una mirada subjetiva a la educación
Fundamentos_Educacion_a_Distancia_ABC.pdf
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
caso clínico iam clinica y semiología l3.pptx
ciencias-1.pdf libro cuarto basico niños
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
Welcome to the 7th Science Class 2025-2026 Online.pptx
V UNIDAD - PRIMER GRADO. del mes de agosto
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
Metodologías Activas con herramientas IAG
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
biología es un libro sobre casi todo el tema de biología
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf

Lab excepciones propias

  • 1. EXCEPCIONES PROPIAS El lenguaje Java proporciona las clases que manejan casi cualquier tipo de excepción. Sin embargo, en algunos casos se pueden presentar situaciones en la que producen excepciones que no están dentro del lenguaje Java. En este tipo de caso se deben de programar excepciones propias. En casos como: ingresar edades, estaturas o tamaños negativos, una aplicación puede fallar, por lo cual se debería manejar las excepciones que le indiquen al programador que debe validar este error. Para crear una excepción propia se debe programar una nueva clase que herede de Exception. En el siguiente código es un ejemplo de cómo manejar la edad negativa con una excepción propia. Lo primero que se debe hacer es programar la nueva excepción: /** * Excepción para manejar la edad negativa de una persona * @author mac * @version 1.0 */ public class EdadNegativaException extends Exception { /** * Permite usar el constructor de la superclase con mensaje * @param mensaje mensaje que se desea mostrar */ public EdadNegativaException(String mensaje) { super(mensaje); } /** * Permite manejar el constructor de la superclase que no usa parametros */ public EdadNegativaException() { super(); } } Ahora se hace uso de la excepción: /** * Clase que muestra un ejemplo de cómo usar una excepción propia * @author mac * @version 1.0 */ public class ManejoDeExcepcionesPropias { public static void main(String[] args) { int edad = 34; Lenguaje de programación Técnica profesional en desarrollo de software Profesor: Andrés Herrera R. Mail: jherrera@eam.edu.co Laboratorio Excepciones propias Nombre:_________________________________________________________________________
  • 2. 2 String nombre= "Ana"; try { System.out.println(crearPersona(edad, nombre).getEdad()); } catch (EdadNegativaException e) { e.printStackTrace(); } } /** * Se encarga de crear una nueva persona * @param edad edad de la persona * @param nombre nombre de la persona * @return la nueva persona * @throws EdadNegativaException error por agregar una edad negativa */ private static Persona crearPersona(int edad, String nombre) throws EdadNegativaException { if( edad < 0 ){ throw new EdadNegativaException("Error por agregar una edad negativa"); } return new Persona(nombre, edad); } } Como se puede ver en el código anterior, cuando se ingresa una edad negativa automáticamente se lanzar una excepción (verificada) indicando que ha ocurrido un error, esto le advertirá a los programadores que deben manejar el error ocurrido. Si desea lanzar una excepción no verificada se debería usar como superclase a RuntimeException. Asociar cada uno de los tipos de fallas graves en tiempo de ejecución con una clase Exception con nombre apropiado ayuda a mejorar la claridad del programa. Por convención, todos los nombres de las clases de excepciones deben terminar con la palabra Exception. De ser posible, se deben indicar las excepciones en los métodos mediante el uso de las clases de excepciones existentes, en vez de crear nuevas. La API de Java contiene muchas clases de excepciones que podrían ser adecuadas para el tipo de problema que el método necesite indicar. Multi-catch Es muy común que después de un bloque try haya varios bloques catch para manejar diversos tipos de excepciones. Si los cuerpos de varios bloques catch son idénticos, el programador puede usar la nueva característica multi-catch de Java SE7 para atrapar esos tipos de excepciones en un solo manejador catch y realizar la misma tarea.
  • 3. 3 La sintaxis para el multi-catch es: catch ( Ttpo1 | Ttpo2 | Ttpo3 e ) Cada tipo de excepción se separa de la siguiente con una barra vertical (|). La línea anterior de código indica que es posible atrapar uno de los tipos especificados (o cualquier subclase de esos tipos) en el manejador de excepciones. En una clausula multi-catch, se puede especificar cualquier cantidad de tipos Throwable. Try con recursos Por lo general, el código para liberar recursos debe colocarse en un bloque finally, para asegurar que se libere un recurso sin importar que se hayan lanzado excepciones cuando se utilizó́ ese recurso en el bloque try correspondiente. Hay una notación alternativa, la instrucción try con recursos (nueva en Java SE 7), que simplifica la escritura de código en donde se obtienen uno o más recursos, se utilizan en un bloque try y se liberan en el correspondiente bloque finally. Cada recurso debe ser un objeto de una clase que implemente a la interfaz AutoCloseable; dicha clase tiene un método llamado close. La forma general de una instrucción try con recursos es: try ( NombreClase elObjeto = new NombreClaseO ) { // aquí se usa elObjeto catch } catch ( Exception e ){ // atrapa las excepciones que ocurren al usar el recurso } Para asignar varios recursos en el paréntesis del bloque try, se debe agregar consecutivos separados por punto y como (;). PRACTICA 1- Cree un proyecto java y nómbrelo <<Manejo de Excepciones Propias>>. 2- Cree un paquete de nombre <<com.EAM.lenguaje.excepciones>> 3- Cree una clase de nombre <<ManejoDeExcepciones>> con el método main. 4- Cree una excepción de nombre <<RangoException>>. Programe un método que reciba como parámetro un numero entero. Lance la excepción <<RangoException>> si el numero que entra como parámetros no esta entre el rango de 0 a 100. Llame el método desde el main, use Scanner para obtener el dato de entrada. 5- Cree una excepción de nombre <<NombrePersonaException>>. Programe un método que reciba como parámetro una cadena de texto, y lance la excepción <<NombrePersonaException>> si la cadena contiene un símbolo diferente a una letra. Llame el método desde el main, use Scanner para obtener el dato de entrada. 6- Cree una excepción de nombre <<CorreoElectronicoException>>. Programe un método que reciba una cadena de texto como parámetro, lance la excepción use esta excepción <<CorreoElectronicoException>> si la cadena no tiene el formato de una correo electrónico. Llame el método desde el main, use Scanner para obtener el dato de entrada.
  • 4. 4 7- Programe en el método main una instrucción try que maneje las tres excepciones creadas en los puntos anteriores (debe usar multi-catch). 8- Investigue y programe un ejemplo donde use un bloque try con recursos. ENTREGABLE Mostrar la Practica realizada en su totalidad. BIBLIOGRAFÍA Deitel, P. J. & Deitel, H. M. (2012). Como Programar en java. Novena edición. México: Prentice Hall.