Java.lang.ArrayIndexOutOfBoundsException: 24

di il
1 risposte

Java.lang.ArrayIndexOutOfBoundsException: 24

     for (i = 0; i < dati.length; i++) {
                    String inizio = "";
                    String fine = "";
                    try {
                        inizio = dati[i].substring(0, 1).toUpperCase();
                        fine = dati[i].substring(1, dati[i].length());
                    } catch (Exception e) {
                        System.out.println("2- " + e);
                    }
                    try {
                        dati[i] = inizio + fine;
                    System.out.println(dati[i]);
                    } catch (Exception e) {
                        System.out.println("5- "+e);
                    }
                }

                try {
                    modello_interno.addRow(dati);
                } catch (Exception e) {
                    System.out.println("1- " + e);
                }
            } catch (Exception e) {
                System.out.println("3- " + e);
            }
Il codice qui sopra stampa alla fine questo
2- java.lang.StringIndexOutOfBoundsException: String index out of range: 1
che va bene, presumo significa che la stromga essendo cosi "" non trova il carattere alla posizione 1, ok...
Ma questi due non li capisco, cosa c'è che non va?

3- java.lang.ArrayIndexOutOfBoundsException: 24
3- java.lang.ArrayIndexOutOfBoundsException: 24


Grazie.

1 Risposte

  • Re: Java.lang.ArrayIndexOutOfBoundsException: 24

    p0ll0_ ha scritto:


    Ma questi due non li capisco, cosa c'è che non va?

    3- java.lang.ArrayIndexOutOfBoundsException: 24
    3- java.lang.ArrayIndexOutOfBoundsException: 24
    Riguarda, chiaramente, l'accesso ad un elemento di un array, dove l'indice 24 evidentemente non esiste.
    Purtroppo non è facile dedurre cosa non va, dato che tra l'altro il catch in questione è di un try che non hai postato (è più "sopra" del for che hai riportato).
    Non mi pare che sia dovuto all'accesso dati[i] perché il for "scorre" sugli indici correttamente (da 0 per i minore lunghezza, che è giusto). Presumo che il problema sia altrove, forse quel addRow.

    In questi casi quello che servirebbe è lo stacktrace, che non hai perché stampi banalmente solo il messaggio della eccezione. Abituati quindi a mettere ad esempio e.printStackTrace(); perché così capisci bene DOVE è avvenuta l'eccezione.
Devi accedere o registrarti per scrivere nel forum
1 risposte