Qu'est-ce que déréférencer un pointeur nul possible?
Je fais un programme pour SFTP
dans NetBeans
.
Une partie de Mon code:
com.jcraft.jsch.Session sessionTarget = null;
com.jcraft.jsch.ChannelSftp channelTarget = null;
try {
sessionTarget = jsch.getSession(backupUser, backupHost, backupPort);
sessionTarget.setPassword(backupPassword);
sessionTarget.setConfig("StrictHostKeyChecking", "no");
sessionTarget.connect();
channelTarget = (ChannelSftp) sessionTarget.openChannel("sftp");
channelTarget.connect();
System.out.println("Target Channel Connected");
} catch (JSchException e) {
System.out.println("Error Occured ======== Connection not estabilished");
log.error("Error Occured ======== Connection not estabilished", e);
} finally {
channelTarget.exit(); //Warning : dereferencing possible null pointer
channelTarget.disconnect(); //Warning : dereferencing possible null pointer
sessionTarget.disconnect(); //Warning : dereferencing possible null pointer
}
Je suis d'avertissement dereferencing possible null pointer
comment puis-je résoudre ces mises en garde???
Où je peux débrancher mon Session
et Channel
???
source d'informationauteur Ankit Lamba | 2014-02-06
Vous devez vous connecter pour publier un commentaire.
sessionTarget = jsch.getSession(backupUser, backupHost, backupPort);
Ici, dans cette ligne,getSession()
méthode peut lever une Exception, et donc les variablessessionTarget
etchannelTarget
sera nulle, et dans le bloc finally, vous avez accès à ces variables, qui peut causer une exception de pointeur null.Pour éviter cela, dans le bloc finally vérifier la valeur null avant d'accéder à la variable.
Qui signifie: que faire si votre
channelTarget
etsessionTarget
sont nulles dans votre bloc finally? Vérifier la valeur null pour éviter l'avertissement.Je pense que netbeans est juste essayer de vous avertir que ces peut être null, qui ne peut pas être necasarilly vrai. Vous pouvez choisir de désactiver les mises en garde. Il suffit de placer votre curseur sur l'avertissement de presse
ALT+ENTER
et choisissez dans le choix même de désactiver les avertissements.