send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Excepciones personalizadas en Java

  • 0 Respuestas
  • 3311 Vistas

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Expermicid

  • *
  • Underc0der
  • Mensajes: 457
  • Actividad:
    0%
  • Reputación 0
  • _-Expermicid-_
    • Ver Perfil
  • Skype: expermicid.xd
« en: Octubre 14, 2013, 02:51:51 pm »
Java usa excepciones para proveer manejo de errores a sus programas.
Se pueden definir excepciones propias en Java, no hay por qué limitarse a las predefinidas, bastará con que la clase extienda de la clase Exception y proporcionar la funcionalidad para el tratamiento de esa excepción.

Supongamos que tenemos que crear una clase DataBag, la cual tiene un numero máximo de elementos y permite almacenar cualquier tipo de objetos.
Y debemos definir dos métodos:
- add() para permitir agregar elementos a la bolsa y en el caso de que la misma este llena dispare la excepción FullDataBagException.
- remove() para remover elementos de la bolsa y en el caso de que la misma este vacía se dispare la excepción EmptyDataBagException

Las dos excepciones FullDataBagException y EmptyDataBagException son excepciones chequeadas que deben ser creadas por nosotros como subclase de Exception.

Para ello creamos la Clase DataBag.

Código: Java
  1. import java.util.ArrayList;
  2.  
  3. public class DataBag {
  4.  
  5.         // Variables
  6.         private final int limiteMaximo = 5;
  7.         private ArrayList<Object> lista = new ArrayList<Object>();
  8.        
  9.         // Constructor
  10.         public DataBag() {
  11.                 super();
  12.         }
  13.        
  14.         // Getter y Setter
  15.         public int getLimiteMaximo() {
  16.                 return limiteMaximo;
  17.         }
  18.         public void setLista(ArrayList<Object> lista) {
  19.                 this.lista = lista;
  20.         }
  21.         public ArrayList<Object> getLista() {
  22.                 return lista;
  23.         }
  24.        
  25.         // Metodo Add()
  26.         public void add(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login agregar) {
  27.                
  28.         }
  29.        
  30.         // Metodo Remover()
  31.         public void remover() {
  32.                
  33.         }
  34.        
  35. }

Ya tenemos el esqueleto de la clase. En donde ponemos el limite de objetos que se pueden guardar y usamos un ArrayList para almacenar los objetos.
Los metodos Add() y Remover() los haremos despues.
Vamos a crear las excepciones, para ello creamos una clase llama FullDataBagException que extienda a Exception y lo mismo con EmptyDataBagException.

Código: Java
  1. public class FullDataBagException extends You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login {
  2.        
  3.         // Constructor
  4.         public FullDataBagException() {
  5.                 super();
  6.         }
  7.        
  8. }

Código: Java
  1. public class EmptyDataBagException extends You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login {
  2.                
  3.         // Constructor
  4.         public EmptyDataBagException() {
  5.                 super();
  6.         }
  7.  
  8. }
  9.  

En ellas vamos a sobreescribir el metodo getMessage para imprimir un mensaje adecuada a cada caso.
En el caso de FullDataBagException tiene que notificarse que no hay mas espacio y en EmptyDataBagException que no hay elementos.
Nos quedaria asi.

Código: Java
  1. public class FullDataBagException extends You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login {
  2.  
  3.         // Constructor
  4.         public FullDataBagException() {
  5.                 super();
  6.         }
  7.  
  8.         // Metodo getMessage
  9.         @Override
  10.         public You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login getMessage() {
  11.              return "La cola no tiene espacion disponible.";
  12.         }
  13.        
  14. }

Código: Java
  1. public class EmptyDataBagException extends You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login {
  2.  
  3.         // Constructor         
  4.         public EmptyDataBagException() {
  5.                 super();
  6.         }
  7.  
  8.         // Metodo getMessage
  9.         @Override
  10.         public You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login getMessage() {
  11.              return "La cola no tiene elementos.";
  12.         }
  13.        
  14. }

Ahora si haremos los metodos de la clase DataBag.

En el metodo Add():

- Primero que nada se usa la clausula throws para declarar el tipo de excepción que lanza.
- Con un if verificamos si hay espacio para guardar el nuevo objeto. Si la hay se guarda, en caso contrario se genera una nueva excepcion FullDataBagException y se lanza con throw.

Código: Java
  1. // Metodo Add()
  2. public void add(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login agregar) throws FullDataBagException {
  3.         if (this.getLista().size() == this.getLimiteMaximo()) {
  4.                 throw new FullDataBagException();
  5.         } else {
  6.                 this.getLista().add(agregar);
  7.         }
  8. }

Y con el metodo Remover():

- Se usa la clausula throws para declarar el tipo de excepción que lanza.
- Con un if verificamos si hay objetos para eliminar. Si la hay se elimina el que esta en la posicion 0, en caso contrario se genera una nueva excepcion EmptyDataBagException y se lanza con throw.

Código: Java
  1. // Metodo Remover()
  2. public void remover() throws EmptyDataBagException {
  3.         if (this.getLista().size() == 0) {
  4.                 throw new EmptyDataBagException();
  5.         } else {
  6.                 this.getLista().remove(0);
  7.         }
  8. }

Probemoslo.

- En el caso de que queramos eliminar un elemento y no la haya.



- Si queremos guardar mas elemento del limite permitido.



Funcionan, luego podemos usar try...catch para capturarlas.

Saludos

 

¿Te gustó el post? COMPARTILO!



[Video Curso] Iniciacion a Java por DesarrolloWeb y EscuelaIT Mayo 2014

Iniciado por graphixx

Respuestas: 3
Vistas: 1394
Último mensaje Febrero 23, 2015, 10:13:28 am
por Hu3c0
Java Extremo [Video Cursos Completos] [Español] [ISO] 2009

Iniciado por graphixx

Respuestas: 9
Vistas: 4161
Último mensaje Diciembre 04, 2017, 02:36:34 am
por graphixx
[LIBRO] Programación avanzada en Java - Sonia Jaramillo Valbuena

Iniciado por graphixx

Respuestas: 1
Vistas: 2320
Último mensaje Noviembre 07, 2017, 12:34:40 pm
por K0m0dr3x
Como compilar programas Java en la consola de comandos de Windows

Iniciado por tar3kw0rm3d

Respuestas: 2
Vistas: 2096
Último mensaje Junio 04, 2013, 02:55:07 pm
por tar3kw0rm3d
[Java] Chat utilizando WebSockets con JavaEE y JavaFx

Iniciado por coke951

Respuestas: 3
Vistas: 2666
Último mensaje Diciembre 23, 2016, 10:23:24 pm
por coke951