Exception la référence d'objevt n'est pas définie à une instnace d'objet
yayasam
Messages postés33Date d'inscriptionvendredi 26 mars 2010StatutMembreDernière intervention26 juillet 2010
-
13 avril 2010 à 12:01
yayasam
Messages postés33Date d'inscriptionvendredi 26 mars 2010StatutMembreDernière intervention26 juillet 2010
-
15 avril 2010 à 09:20
COUCOU tous le monde,
j'ai un petit souci avec l'exception suivante : [b]Exception la référence d'object n'est pas définie à une instnace d'objet
/b, en bref j'ai une classe qui me récupère les noms des fichiers qui sont dans un dossier, et stoque ces noms dans dans une liste et me retourne la liste
pour exécuter la requête je passe le Id( identifiant du dossier en paramètres dans ma fonction), le problème quant il s'agit d'un dossier vide ca me génère cette exception ce qui est tout a fait normale paske la liste et vide, jai essayé de resoudre ce probléme an ajoutant un objet vide dans la liste comme ceci:
if(!result.next()){
// en cas d'un dossier vide
Monobjet objet = new Monobjet();
objet.setName("");
list.add(objet);
}else{
while (result.next()) {
Monobjet objet = new Monobjet();
objet.serNate((result.getString("name"))));
list.add(object);
}
}
return list;
comme ca j'ai plus l'exception mais la taille de liste est pas bonne , elle contient à un élément( qui vide) mais ça ca va me poser des probléme par la suite pske je men sert de la taille de liste.
je veux une solution pr enlever l'exception et au meme temps ne pas ajouter un élément vide.
aurez vous une idée!
merciiiiiii.
si on ne fait ce qu'on aime, il faut qu'on aime ce qu'on fait!
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 14 avril 2010 à 07:38
A ta place, je lèverais une nouvelle exception
public static boolean isRepertoireVide(File repertoire){
String [] listefichiers;
int i;
listefichiers=repertoire.list();
return (listefichiers[i].lenght==0)
}
Je ne sais pas si tu utilises des exception, si tu as tes propres classes, il suffirait de lancer l'équivalent de ce que j'apelle en temps normal TechnicalExeption("Fichier Vide"). Si tu n'as pas de classe d'exception, ajoute celle ci
public class EmptyFileException extends Exception{
public EmptyFileException(){
super("Le dossier est vide");
System.out.println("EmptyFileException : "+"Le dossier est vide");
}
public EmptyFileException(String msg){
super(msg);
System.out.println("EmptyFileException : "+msg);
}
}
Ensuite, dans ton code, tu ajoutes
try{
if(isRepertoireVide(repertoire))
throw new EmptyFileException();
}
//Là tu fais toutes les opréations que tu veux faire sur les répertoires non vides
//dont le .size()
catch(EmptyFileException e){
e.printStackTrace);
}
De cette manière, dans ton code, tu n'as qu'à mettre
while (result.next()) {
Monobjet objet = new Monobjet();
objet.serNate((result.getString("name"))));
list.add(object);
}