Programación General => Java => Mensaje iniciado por: orate en Miércoles 26 de Diciembre de 2007, 15:39
Título: Numberformatexception No Capturada
Publicado por: orate en Miércoles 26 de Diciembre de 2007, 15:39
Hola! Antes que nada indicar que soy nuevo en este foro y casi nuevo en el tema de programcion en Java. He intentado hace run tablero de ajdrez y en él ubicar una pieza (un caballo) le paso la unicacion del caballo por medio de los parametros Lanzadera x y. Tengo dos excepciones que capturan el que se le haya pasado un numero de fila o de columna más grande que 8 (se sale del tablero) -esta captrua de excepcion funciona- y otra que que captura si les pasas un valor no numérico p.e. si les pasas Lanzadera a 4 (forma más ajedrecistica pero que de momento no contemplo). Pués bien ahí esta el probleam aunque lo pongo entre Try{} y le pongo un Catch para la excepcion NumberFormatException no la captura y me saca el siguiente error.
Exception in thread "main" java.lang.NumberFormatExceptio n: For input string: "a " at java.lang.NumberFormatExceptio n.forInputString(NumberFormatE xception. java:48) at java.lang.Integer.parseInt(Int eger.java:468) at java.lang.Integer.parseInt(Int eger.java:518) at jordi.chess.Lanzadera.main(Lan zadera.java:17)
Os pongo el código de la clase Lanzadora y de las clases que intevienen
} --------------------------------------------------------------- AHORA LA CLASE TABLERO
package jordi.chess;
public class Tablero {
public int cuadrante [][]=new int[8][8];
public Tablero(){
for (int i=0;i<8;i++){ for (int j=0;j<8;j++){ cuadrante[j]=0;}
} } public void pintaCeldas() { for (int i=7;i>=0;i--){ for (int j=0;j<8;j++){ if (cuadrante[j]==0) System.out.print("0 "); else System.out.print("X ");} System.out.println();}}
que está fuera del bloque try/cacth. Posiblemente estés intentando pasar algo que no sea numérico.
Como soluciones, puedes validar primero los argumentos, o bien incluir esta llamada dentro del bloque.
Salu2!!
Título: Re: Numberformatexception No Capturada
Publicado por: orate en Lunes 31 de Diciembre de 2007, 11:17
SOLUCIONADO!! Gracias Nagisa Al final lo que he hecho es hacer la transformación a entero de los argumentos antes de la llamada a los métodos que pintan y lo he incluido todo en el bloque try. queda asi: public class Lanzadera{