Duda en codigo

Iniciado por elbrujo20, 17 Noviembre 2015, 07:16 AM

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

elbrujo20

Buenas weno tengo unda duda ya que debo me pidieron que explique que errorres tiene este codigo solo que no encuentro ninguno ya lo pase a netbeans y no me da error incluso si se ejecuta e imprime algo es por eso que no entiendo por que dic que busque errores alguien nota algun error en el codigo por que yo no le veo ninguno

String arreglo[] = new String[4];
       
        arreglo[0]="a";
        arreglo[1]="sistemas";
        arreglo[2]="programacion";
        arreglo[3]="hola";
       
        try{
            String cadena=arreglo[4];  // creo que aqui puede ser error por que no existe cadena pero no me marca error no estoy seguro
       
        }
        catch(IndexOutOfBoundsException e){
        System.out.println("Hay un error!");
        }
   
    }

DarK_FirefoX

#1
Pues si hay un error! Lo que pasa es que lo está capturando el catch y mostrando un mensaje en consola! Deberías buscar un poco y leer sobre el manejo de excepciones en Java.

Estás declarando un String de cuatro posiciones las cuales las rellenas con estas lineas:

Código (java) [Seleccionar]
arreglo[0]="a";
arreglo[1]="sistemas";
arreglo[2]="programacion";
arreglo[3]="hola";


Deberías acostumbrarte que en Java los indices empiezan en 0.

Luego utilizas un bloque try{}catch{} y ejecutas en el catch la siguiente línea:

Código (java) [Seleccionar]
String cadena=arreglo[4];

Énfasis en arreglo[4], este índice no existe! Por lo tanto se sale de los límites de la estructura. Esta excepción es capturada por:

Código (java) [Seleccionar]
catch(IndexOutOfBoundsException e)

Y te ejecuta la siguiente línea:

Código (java) [Seleccionar]
System.out.println("Hay un error!");

Que te muestra eso en consola.

Salu2s

PD: Utiliza las etiquetas GeSHi para publicar código

furciorifa

Tu error está en el try-catch primero debes reservar un espacio para cadena antes de asignarle arreglo[];