Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [Java]Varie Exception

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di ilGuglia
    Registrato dal
    Dec 2015
    residenza
    Sicilia
    Messaggi
    46
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Non è molto chiaro .... senza vedere bene il codice. NullPointerException non salta fuori ad un assegnamento ma quando si tenta di accedere ad un campo/metodo su un reference che vale null.

    Puoi mostrare qualche pezzetto di codice?

    codice:
    for (i = 0; i < flag; i++) {
                raw[i][0] = rawData[i][0];
                raw[i][1] = rawData[i][1];
                raw[i][2] = this.decimalFormat.format((((BigInteger) rawData[i][2]).doubleValue()/1000.));
                raw[i][3] = this.decimalFormat.format(((((BigInteger) rawData[i][2]).doubleValue()/1000.))-(Math.round(((Double) rawData[i][4]) / 1000.)));
                raw[i][4] = this.decimalFormat.format((Double) rawData[i][4]);
                raw[i][5] = this.decimalFormat.format((Double) rawData[i][5]);
                raw[i][6] = this.decimalFormat.format((Double) rawData[i][6]);
            }
    La riga in grassetto è quella che da errore. Il flag è maggiore di 0 se vengono passati dei valori a rawData, ciò implica che non possa essere null, ma anche se così fosse, se rawData fosse null dovrebbe dare errore una cinquantina di righe sopra quando faccio questo

    codice:
     rawData[j][2] = ((BigInteger) rawData[j][2]).add((BigInteger) record[2]);
      rawData[j][4] = (Double) rawData[j][4] + (Math.round(((Double) record[3]) / 1000.));
    record[] è una variabile Object che contiene il risultato di una query
    Ultima modifica di ilGuglia; 29-01-2016 a 19:36

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da ilGuglia Visualizza il messaggio
    raw[i][2] = this.decimalFormat.format((((BigInteger) rawData[i][2]).doubleValue()/1000.));
    In questa riga, le uniche cose che tecnicamente possono causare un NPE sono:
    - che raw sia null (ma se così fosse salterebbe fuori già due righe sopra alla assegnazione a raw[i][0])
    - che il campo decimalFormat sia null
    - che rawData sia null
    - che il valore a rawData[i][2] sia null (perché poi ci invochi .doubleValue() )

    Dato che la espressione dà un double il format invocato è format(double), quindi non ci sono problemi su questo.

    Posso solo fare ipotesi ... devi verificare tu. I tool di debug e l'attività di debugging servono proprio a questo.
    Ultima modifica di andbin; 29-01-2016 a 23:59
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.