Exception tabaleau JAVA

HI -  
 HI -
salut,,,
je debut avec java et un probleme d'exception mais je ne sais pas comment le résoudre SVP si vous pouvez m'aider merci voici le code:
public class TableauObject {
private Object tab[];
private int taille;
// private int pos;
public TableauObject (int t){
if (t>0) { tab =new Object[t];
taille=t; }



}
public int gettaille() {return taille;}
public int getObject (int pos) {return tab [pos];}
public void setcase (int pos , Object obj) {tab [pos]= obj;}
public static void main(String []args){


}

}
A voir également:

1 réponse

tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122
 
Bonjour,

Premièrement, il y aune erreur dans le type de retour de la méthode getObject. Le type de retour doit être Object et non pas int.

Pendant votre manipulation, si vous introduisez une position supérieure ou égale à la taille du tableau alors vous provoquerez une exception, alors il faut modifier les méthodes:

public Object getObject (int pos) {

    if(pos >= taille)
         return null;
    return tab [pos];

}


public boolean setcase (int pos , Object obj) {

     if(pos >= taille)
          return false;
     tab [pos]= obj;
     return true;

} 


Bon Courage.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Quitte à faire le test pos>=taille, je rajouterai le cas pos<0 en faisant if(pos<0 || pos >= taille)
Cependant je ne suis pas trop pour remplacer l'objet par null dans getObject, parce que cela risque de provoquer un NullPointerException dans la suite du code, alors qu'un ArrayOutOfBoundsException.est plus simple à déboguer.
0
HI
 
merci....KX je te suis pas bien comme je debute si tu peux m'orienté vers un tutorial ou me donné plus de détaille stp merci encore :)
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Si tu fais getObject(n) avec n<0 ou n>taille, ça va te renvoyer un ArrayOutOfBoundsException.
Le code de tarek_dotzero, shunte cette exception en remplaçant l'objet par null dans le cas n>taille, mais pas dans le cas n<0 qu'il faudrait donc rajouter.
Cependant cela signifie que tu vas renvoyer null lorsque les indices sont invalides, tu ne vas donc pas pouvoir utiliser cet objet car il va renvoyer NullPointerException. Essayes par exemple ce code :
System.out.println(getObject(-2).toString());

Tu vas donc remplacer ArrayOutOfBoundsException par NullPointerException, mais en perdant une information, puisque tu ne sauras pas quel indice du tableau t'as provoqué l'erreur (-2 ici)
0
HI
 
merci bcp KX
0