2011-11-04 3 views
0

Ceci est ma pour la fonction de boucle à l'intérieur du servletComment gérer NullPointerException dans ce cas

Ici, j'ai une question. Les données seront transmises de l'interface utilisateur à ceci.

Dans certaines conditions, certaines informations (par exemple un symbole ou un côté) peuvent ne pas être transmises, alors dans ces conditions, je reçois NullPointreException comme nul lui serait fourni.

List<Bag> bags = new ArrayList<Bag>(bagdata.length); 

for (FormBeanData ld : data) { 
    Bag bag = new Bag(); 
    bag.symbol = ld.getSymbol(); 
    bag.side = ld.getSide(); 
    bags.add(bag); 
} 

Y at-il de toute façon nous pouvons gérer de telles situations ??

Merci.

+1

comme @Matteo suggéré ci-dessous, vous pouvez mettre des valeurs par défaut si ces objets sont null. – hovanessyan

+1

il serait utile si vous pouviez publier le code que vous exécutez et l'erreur réelle (où cela se produit-il). – Matteo

Répondre

2

Le code que vous avez soumis ne plus probablement même pas compiler: bags.add(Bag) n'a pas de sens. Vous devez ajouter l'objet bag (l'instance), et non Bag (la classe).

En tout cas si vous voulez vérifier si une référence est null il suffit de vérifier:

if (myobject != null) { 
    myobject.myfield = ... // myobject is not null 
} else { 
    // ignore, print an error, do what is required to do 
} 

Vous devez également vérifier avant itérer

if (collection != null) { 
    for (Object o : collection) { 
    } 
} 
-1

juste vérifier si l'une des valeurs est égale à null

List bags = new ArrayList(bagdata.length); 
for (FormBeanData ld : data) { 
    if(ld!=null && ld.getSymbol()!=null && ld.getSide()!=null) { 
     Bag bag = new Bag(); 
     bag.symbol = ld.getSymbol(); 
     bag.side = ld.getSide(); 
     bags.add(Bag); 
    } 
} 
+0

Ce n'est pas là où il a probablement l'exception: si 'ld.getSymbol()' est 'null' alors' bag.symbol = ld.getSymbol' ** ne générera pas une exception. Il va juste attribuer 'null'. Très probablement 'data' est null mais le code Revathi soumis ne peut pas être correct (voir add (Bag)) donc il est difficile de voir où l'exception se produit. Votre code va aussi planter si les données sont nulles. – Matteo

Questions connexes