Besoi d'aide

Fermé
bifaka - 15 mai 2006 à 15:03
 bifaka - 16 mai 2006 à 12:11
bonjour à tous,
voici mon programme et l'ennoncé de l'exercice:
je dois déclarer un objet de la classe Registre dans le main programme en lui attribuant la valeur null quelle erreur apparaît pendant l'exécution du programme?
essaez d'attraper l'erreur en utilisant le block try-catch.
demontrez la capacité de la fonction en affichant dans la partie de catch "essaye d'acceder au pointeur Null" et en affichant à la fin du block try-catch "le programme continue".

pour qu'une erreur apparaisse j'ai du commenter
//bit= new Registre(d); et l' erreur apparue est NullpointerException à partir de /*
*affiche le contenu
*du registre
*/

dites moi si c'est juste ce que j'ai fais et pourquoi je dois commenter bit= new Registre(d) pour que l'erreur apparaisse.
je ne m'y connais pas avec try- catch. Quelqu'un pourrai me dire à quelle niveau je dois mettre mon block? voici ce que j'ai fait
Merci pour toute aide



public class Registre {

private short [] myBitArray;

/**
* Constructeur
* @param aBitArrayLength
*/
public Registre(int aBitArrayLength){

myBitArray=new short[aBitArrayLength];
short index;
for(index=0;index<aBitArrayLength; index ++)
{
myBitArray[index]=0; }


}

/**
* Modifier la valeur d un bit
* @param position
* @param valeur
*/
public void set(int position, int valeur){

if ( !((valeur==0)||(valeur==1)) ){
System.out.println("la valeur "+valeur+" est incompatible avec le type bit.");
}
if ( (position<myBitArray.length) && (position>0) ){
myBitArray[position]=(short) valeur;
} else {
System.out.println("La position "+position+" est en dehors du tableau.");
}
}

/**
* Afficher le tableau
*/
public void get(){
int index=0;

while (index<myBitArray.length) {
System.out.print(myBitArray[index]);
if (index< (myBitArray.length-1) ){
System.out.print("|");
} else {
System.out.println();
}
index++;
}
}
}

/*
*Methode Main
*/
class GereRegistre {


public static void main(String args[]) throws IOException {

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

/*
*crée un Objet

*/

Registre bit=null;


short i, d;


/*
*Initialiaser
*l' Objet
*/

bit= new Registre(d);


System.out.println("donner la longueur de l'array : ");
i=Short.parseShort(in.readLine());

/*
*affiche le contenu
*du registre
*/
try{

bit.get();

System.out.println("donnez la valeur de l'index et du bit : ");
for ( j =0;j<i;j++)
{
System.out.print(" ");
j=Short.parseShort(in.readLine());
System.out.print("");
k=Short.parseShort(in.readLine());
System.out.print(+bit.set(j,k));

System.out.println("");

}

/*
*affiche à nouveau le contenu
*du registre
*/

bit.get();
}
catch(NullPointerException e){
System.out.println(" essaye d'acceder au pointeur Null");

}
System.out.println("le programme continue");

}


}//fin main
}//fin programme

6 réponses

coucou c'est moi ,
n'ya personne pour m'aider?
0
Allo? Est-ce qu'il y a quelqu'un qui pourrait me répondre plzzzzzz!!!
0
Salut,
je ne peux pas te répondre car je ne sais pas, mais je vais te rappeler quelques règles qui permettront que tu obtiennes de l'aide plus facilement :
_évite ce genre de titre. Dans un "bon" titre, il faut mettre un aperçu du vrai problème.
_met aussi dans le titre le type de programmation : je ne sais meme pas en quel language tu codes.
_évite de faire des "up", ça sert pas à grand chose. Moi aussi j'ai un message de demande d'aide, j'attend 1 semaine avant de faire un up.

En espèrant que tu comprennes, et que tu en tiendras compte.

A+
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
16 mai 2006 à 10:14
Apparement c'est du java à première vue.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
16 mai 2006 à 10:40
Si c'est bien du java tu me confirmes que c'est bien le programme qui fonctionne?
0
merci déjà que tu veuilles m'aider.
c'est bien du programme qui fonctionne et c'est java. si tu lis l'enoncé, tu comprendras mon probleme. Je dois utiliser lrle bloc try-catch mais je ne sais pas si j'ai fais juste. tout le probleme est expliquer dans l'enoncé. Encore merci.
0