Besoi d'aide

[Fermé]
Signaler
-
 bifaka -
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?
Allo? Est-ce qu'il y a quelqu'un qui pourrait me répondre plzzzzzz!!!
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+
Messages postés
9367
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 349
Apparement c'est du java à première vue.
Messages postés
9367
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 349
Si c'est bien du java tu me confirmes que c'est bien le programme qui fonctionne?
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.