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.