Excepciones en java

Hola buenas estoy realizando una página en jsp y me saca la siguiente excepción String index out of range:-20 que tipo de fallo en el código me puede estar dando este error, muchas gracias y un saludo¡

1 respuesta

Respuesta
1
Sin ver el código es un poco difícil, pero imagino que estás intentando hacer un substring o algo así, y los índices que estas utilizando están fuera de rango. Si no es eso, por favor, añade el código fuente y te podré ayudar mejor.
Un saludo y no olvides valorar mi respuesta ;-)
Carlos.
Hola haber si tu lo ves por que yo estoy mica de revisarlo jeje, em_senal 1,2,3,4 tienen un tamaño de 250 caracteres, el codigo va extrallendo bloques de 25 caracteres, cada em_senal tiene 10 palabras
try{
for (int i=0;i<32;i++)
{
if (ba_senales!='*')
{
if (i<10)
{
//dado que el �ltimo parametro no tiene porque tener 25 caracteres, lo trataremos aparte
if (i==10-1)
nombreParametro=em_senal_1.substring(i*25,em_senal_1.length());
else
nombreParametro=em_senal_1.substring(i*25,(i+1)*25);
}
else if (i<20)
{
//dado que el �ltimo parametro no tiene porque tener 25 caracteres, lo trataremos aparte
if (i==20-1)
nombreParametro=em_senal_2.substring((i-10)*25,em_senal_2.length());
else
nombreParametro=em_senal_2.substring((i-10)*25,(i+1-10)*25);
}
else if (i<30)
{
//dado que el �ltimo parametro no tiene porque tener 25 caracteres, lo trataremos aparte
if (i==30-1)
nombreParametro=em_senal_3.substring((i-20)*25,em_senal_3.length());
else
nombreParametro=em_senal_3.substring((i-20)*25,(i+1-20)*25);
}
else if (i<40)
{
//dado que el �ltimo parametro no tiene porque tener 25 caracteres, lo trataremos aparte
if (i==40-1)
nombreParametro=em_senal_4.substring((i-30)*25,em_senal_4.length());
else
nombreParametro=em_senal_4.substring((i-30)*25,(i+1-30)*25);
}
//analizamos el estado del parametro que se est� estudiando
if (ba_senalesr=='0')
{
estadoParametro="OFF";
if ((i>=0&&i<6)||(i>=17-1&&i<=32-1))
{
background_color="blue";
}
else
{
background_color="green";
}
}
else
{
estadoParametro=i<8?"ACTIVA":"ON";
if ((i>=0&&i<6)||(i>=17-1&&i<=32-1))
{
background_color="green";
}
else
{
background_color="red";
}
}
estadoBaliza = new Parametros(nombreParametro,estadoParametro,background_color);
}
}
}catch(Exception e){
%>
<script>alert("Error señales: <%=e.getMessage()%>")</script>
<%
}
Yo que tú pondría algunos System.out.println() para ver por dónde falla. De todas formas, para sacar el último nombreParámetro, omite el segundo parámetro del substring. Solo necesita saber desde donde, y te obtendrá el substring desde ese punto hasta el final de la cadena. Lo tienes en los "if (i==10-1)"
De todas formas, te aconsejo lo de las trazas. Ahorrarás bastante tiempo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas