Como puedo Editar mis Propias Excepciones

Iniciado por cyberserver, 24 Diciembre 2010, 01:14 AM

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

cyberserver

Hola...!!!!

Quisiera saber como puedo Editar mis propias Excepciones en mis metodos???

:huh: :huh: Me pregunto  :huh: :huh: cuando existe una error en al uitlizacion de un metodo y devuelve una Exception Exsacta.

¿como se edito en la Clase esa Exception o Existe un metodo dentro de la Clase que Clasifica los Errores o como funciona???

¿Como sabe que es una Exception y que no es solo el retorno de una variable de un metodo?

¿Como sabe o entiende el try{}catch(Exception){} que es una Exception?


Cualquier informacion, sera bien resibida!!!! :)








jdc

Por ejemplo fijate en el error que da al meter letras en un entero, te arrojara un error especifico, ése lo atrapas con el catch y devuelves no metas letras idiota

sapito169




Citar

¿como se edito en la Clase esa Exception o Existe un metodo dentro de la Clase que Clasifica los Errores o como funciona???

no Debes editar la clase exception por que podria causar problema es mas esta compilada y es una clase que ya esta siendo usada por otras clases

realmente parece que estas usando las palabras incorrectas
enves de editar Exceptiondeveria ser como creo y manejo mis excepciones personalisdas

para crear una excepcion lo unico que tienes que hacer es heredar de Throwable
o cualquiera de sus hijos nietos o visnietos si no sabes que es heredar primero averigua como se hace

Citar
¿Como sabe que es una Exception y que no es solo el retorno de una variable de un metodo?


:huh: :huh:


creo que lo que tratas de preguntar como se lansa una excepcion personalizada dentro de un metodo

se usa la palabra reservada throw muy usualmente en combinasion de varias verficaciones (usando if)


1mpuls0

Hola primero que nada, trata de corregir un poco tu escritura o por lo menos de explicar bien tú duda (Hay oraciones que no comprendo).

Lee bien toda la información que encuentres acerca de try catch o manejo de excepciones, para que comprendas mejor.

Como ya te ha dicho el compañero es mejor que te hagas un cátalogo con tus propias excepciones.
Ya que es muy complicado tratar de modificar las clases y además como mencionan, son utilizadas por otras clases y generaría problemas.

Cita de: cyberserver en 24 Diciembre 2010, 01:14 AM
¿Como sabe que es una Exception y que no es solo el retorno de una variable de un metodo?

Cita de: sapito169 en 24 Diciembre 2010, 07:11 AM
creo que lo que tratas de preguntar como se lansa una excepcion personalizada dentro de un metodo

Yo pienso que se refire a cuando por ejemplo cuando tienes algo como esto.

Código (java) [Seleccionar]

try {
...
}
catch(Exception e) {
System.out.println(e);
}


Y entras al bloque del catch te manda algo como por ejemplo en el caso de una mala conversión parser.

java.lang.NumberFormatException: "a"

como sabe la clase Exception que tipo de mensaje te va a retornar.

por qué no te manda cualquier otro como??

java.lang.ArithmeticException: / by zero

La verdad no estoy seguro de como reconoce el tipo de error.

Un saludo.
abc

sapito169

Código (java) [Seleccionar]

public class ErrorPorMisio extends RuntimeException {

private static final long serialVersionUID = 1L;

}



Código (java) [Seleccionar]

public class Billetera {
private double dinero;

public Billetera(double dinero) {
this.dinero = dinero;
}

public double getDinero() {
return dinero;
}

public void pagar(double dineroPagado) {
if (dineroPagado > dinero) {
throw new ErrorPorMisio();
}
dinero = dinero - dineroPagado;
}
}



Código (java) [Seleccionar]

public class Main {
private static final int CANTIDADINICIAL = 1000;
private static final int DINEROPAGADO = 200;

public static void main(String arg[]) {
Billetera billetera = new Billetera(CANTIDADINICIAL);
for (int iteracion = 1; iteracion < 20; iteracion++) {
System.out.println("iteracion numero " + iteracion);
System.out.println("la billetera tiene " + billetera.getDinero());
billetera.pagar(DINEROPAGADO);
System.out.println("pagando " + DINEROPAGADO);
}
}
}



sapito169

el problema es que jamas leen la pila de errores y luego se preguntan por que muere mi programa
esto es el salida de mi programa donde muy claro con letras rojas con el nombre del error es mas explica en que line de que clases paso por ultima ves

Exception in thread "main" ErrorPorMisio
at Billetera.pagar(Billetera.java:14)
at Main.main(Main.java:10)
iteracion numero 1
la billetera tiene 1000.0
pagando 200
iteracion numero 2
la billetera tiene 800.0
pagando 200
iteracion numero 3
la billetera tiene 600.0
pagando 200
iteracion numero 4
la billetera tiene 400.0
pagando 200
iteracion numero 5
la billetera tiene 200.0
pagando 200
iteracion numero 6
la billetera tiene 0.0

que no se ve bien claro de que el error se llama errorpormisio y de que paso en la linea 10 de la clase main que fue invocada desde billetera pagar en la linea 14
deverian leer

bueno si pones algo asi

try{
}
catch (UnaEsepcion unaEsepcion){
}
catch (OtraEsepcion otraEsepcion){
}

ya sabes de por si que excepciones estas manejando ademas las puedes leer de la documentacion y el ide te obliga a manejarla
hay veces que por motivos practicos no te obliga a manejar todas las excepciones y saltan errores de sorpresa en ese caso donde te sorprenden la unica forma es leer la trasa y asi te enteras que errores hay