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.
Efectivamente la "comprobación" la tienes que hacer dentro del constructor.
Te dejo un ejemplo.
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);
}
}
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.
Muchas gracias por el ejemplo, que es como mejor se aprende. Voy a implementarlo ya en la práctica.
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?
No entendí tu última pregunta, podrías tratar de ejemplificarlo.