comment
IRC Chat
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
  • 3867 Vistas

0 Usuarios y 1 Visitante 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(No tienes permisos para ver links. Registrate o Entra con tu cuenta 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 No tienes permisos para ver links. Registrate o Entra con tu cuenta {
  2.        
  3.         // Constructor
  4.         public FullDataBagException() {
  5.                 super();
  6.         }
  7.        
  8. }

Código: Java
  1. public class EmptyDataBagException extends No tienes permisos para ver links. Registrate o Entra con tu cuenta {
  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 No tienes permisos para ver links. Registrate o Entra con tu cuenta {
  2.  
  3.         // Constructor
  4.         public FullDataBagException() {
  5.                 super();
  6.         }
  7.  
  8.         // Metodo getMessage
  9.         @Override
  10.         public No tienes permisos para ver links. Registrate o Entra con tu cuenta getMessage() {
  11.              return "La cola no tiene espacion disponible.";
  12.         }
  13.        
  14. }

Código: Java
  1. public class EmptyDataBagException extends No tienes permisos para ver links. Registrate o Entra con tu cuenta {
  2.  
  3.         // Constructor         
  4.         public EmptyDataBagException() {
  5.                 super();
  6.         }
  7.  
  8.         // Metodo getMessage
  9.         @Override
  10.         public No tienes permisos para ver links. Registrate o Entra con tu cuenta 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(No tienes permisos para ver links. Registrate o Entra con tu cuenta 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: 1695
Ú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: 4855
Último mensaje Diciembre 04, 2017, 02:36:34 am
por graphixx
[LIBRO] Programación avanzada en Java - Sonia Jaramillo Valbuena

Iniciado por graphixx

Respuestas: 4
Vistas: 3478
Último mensaje Noviembre 09, 2018, 09:07:14 am
por ivaneliascalu
Como compilar programas Java en la consola de comandos de Windows

Iniciado por tar3kw0rm3d

Respuestas: 2
Vistas: 2339
Último mensaje Junio 04, 2013, 02:55:07 pm
por tar3kw0rm3d
[JAVA] Queso Admin Finder version Alpha

Iniciado por Flemon

Respuestas: 2
Vistas: 1528
Último mensaje Marzo 02, 2015, 08:25:18 pm
por Flemon