Tout d'abord, je suis un programmeur expérimenté, mais j'ai très peu de familiarité avec Java. J'ai environ deux ans d'expérience avec elle, il y a huit ans.
Je reçois une nullpoinpoincerexception dans le code suivant: p> voici la stacktrace: p> la stacktrace Points à cette ligne: P> if(gfexResponse.getMessage()!= null){ <-------- this line
request.setAttribute("message", gfexResponse.getMessage());
}
5 Réponses :
Cette erreur indique que l'objet gfexResponse code> est null code> (c.-à-d. action.execute (événement) code> renvoie null code> dans le code ci-dessus et aucune exception n'est lancée) p>
+1 Nice Catch sur action.execute (événement) code>. Votre réponse est la seule qui dit pourquoi gfexreesponse code> est null code> ..
réellement problème réalise à la ligne seule chance dans la ligne ci-dessous pour obtenir NPE ici est changez-le sur p> gfexreesponse = action.execute (événement); code> gfexreesponse code> est NULL < / p>
Merci. Je l'ai essayé, obtenant toujours la même exception au même point.
Vous les gars cloué, merci! Je me suis trompé à ce sujet sur le même point.
Êtes-vous sûr que gfexreesponse code> obtient une valeur réelle de action.execute (événement); code> (dans le essayer {} code>)? Je suppose que action.execute (événement); code> renvoie null. P>
Je suppose que je devrai comprendre comment utiliser le mode de débogage.
Votre contour de base est ceci:
public static void handle(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException {
Response gfexResponse = null;
try {
//Try to get your gfexResponse
//Make sure you got your response object and throw SomeAppropriateException if not
//Do some stuff with gfexResponse
} catch (SomeAppropriateException e) {
//properly handle this case
} catch (Exception ex) {
//properly handle the general case that something else failed (But you should try to be more specific)
} finally {
//remove any resources that might not be properly cleaned up if an exception is thrown.
}
}
Vous avez raison à propos de cette mauvaise pratique, @nathaniel Ford. Malheureusement, c'est la façon dont il a été codé à l'origine, et personne en gestion ne va bien les dépenses pour fixer tout cela. Ceci est juste un petit site Web, mais les développeurs originaux ont manipulé le contrôle de flux de la même manière partout.
Pour résoudre la douleur immédiate - votre à partir de là, le bloc action.execute (événement); code> renvoie probablement null code>. Cependant, cela peut être atténué de plusieurs manières: p>
réponse code>. Li>
ul>
enfin code> devient le principal objectif de votre méthode et vous pouvez vérifier NULL sans avoir à vous soucier de enfin code>. p>.
Ajoutez un chèque pour voir si
gfexreesponse == null code>. Null Pointer Exceptions à Java sont généralement très faciles à déboguer, car vous essayez d'appeler une méthode sur un objet NULL.