Excepciones

Iniciado por user-marcos, 22 Octubre 2015, 21:58 PM

0 Miembros y 1 Visitante están viendo este tema.

user-marcos

Código (java) [Seleccionar]

public class suma
{
  public suma(){}
  public suma(int x, int y) throws ExcSuma
{//Controlar que la suma no sea superior a 10

}
}


----------------
//EscSuma supongo que tiene que ser una clase
+ ExcSuma (x, y)
- x
- y
---------------

Antes de exponer la duda voy a explicar lo que he puesto arriba, tengo que controlar que la suma no sea superior a 10, pero empleando excepciones. Para ello tengo que emplear ExcSuma con parametros x e y.
Pero no se ni como enfocarlo, no se si la comprobación la tengo que hacer en el constructor suma y emplear ExcSuma para que devuelva algún mensaje, o que la comprobación la haga ExcSuma. Yo domino c++ , y no se emplean excepciones de este tipo, agradecería vuestra ayuda.
Un saludo.

0roch1

Efectivamente la "comprobación" la tienes que hacer dentro del constructor.

Te dejo un ejemplo.

Código (java) [Seleccionar]

public class ExcepcionPersonalizada extends Exception {

/**
*
*/
private static final long serialVersionUID = 8204221612259467805L;

public ExcepcionPersonalizada() {

}

public ExcepcionPersonalizada(String mensaje) {
super(mensaje);
}

public ExcepcionPersonalizada(Throwable causa) {
super(causa);
}

public ExcepcionPersonalizada(String mensaje, Throwable cause) {
super(mensaje, cause);
}

public ExcepcionPersonalizada(String mensaje, Throwable causa, boolean habilitarSupresion, boolean trazaDePilaGrabable) {
super(mensaje, causa, habilitarSupresion, trazaDePilaGrabable);
}
}


Código (java) [Seleccionar]

public class DemoExcepcion {

public static void main(String args[]) {
try {
new DemoExcepcion(null);
} catch (ExcepcionPersonalizada e) {
//e.printStackTrace();
System.out.println(e.getMessage());
}
}

public DemoExcepcion() {

}

public DemoExcepcion(String parametro) throws ExcepcionPersonalizada {
if(parametro == null) //Condición
throw new ExcepcionPersonalizada("El valor es nulo..");

}
}


Cualquier duda comenta.

user-marcos

Muchas gracias por el ejemplo, que es como mejor se aprende. Voy a implementarlo ya en la práctica.

user-marcos

Me acaba de surgir otra duda, si la clase no tiene main y solo puedo usar métodos privados ¿Dónde puedo capturar el error?

0roch1

No entendí tu última pregunta, podrías tratar de ejemplificarlo.