Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: user-marcos en 22 Octubre 2015, 21:58 PM

Título: Excepciones
Publicado por: user-marcos en 22 Octubre 2015, 21:58 PM
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.
Título: Re: Excepciones
Publicado por: 0roch1 en 23 Octubre 2015, 00:02 AM
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.
Título: Re: Excepciones
Publicado por: user-marcos en 24 Octubre 2015, 09:27 AM
Muchas gracias por el ejemplo, que es como mejor se aprende. Voy a implementarlo ya en la práctica.
Título: Re: Excepciones
Publicado por: user-marcos en 24 Octubre 2015, 13:06 PM
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?
Título: Re: Excepciones
Publicado por: 0roch1 en 27 Octubre 2015, 20:22 PM
No entendí tu última pregunta, podrías tratar de ejemplificarlo.