Try- catch statement en java

Fermé
bifaka - 15 mai 2006 à 08:09
 bifaka - 17 mai 2006 à 08:31
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
A voir également:

4 réponses

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 à 21:43
Pas la peine de s'enerver desfois tu peux n'avoir une réponse qu'au bout d'une semaine ou plus, tout le monde ne connait pas tous les domaines.

Normalement tu dois avoir une erreur à l'execution de ce programme.

ALors à la place de l'action qui devrait etre faite tu insères :

try
{
action_a_effectuer();//fonction ou autre
}
catch(Exception e) //on attrape l'erreur
{
e.printStackTrace();
}
10
salut à tous,
n'ya t il vraiment personne pour m'aider?
1
merci pour ton aide
1
Allo? Est-ce qu'il y a quelqu'un qui pourrait me répondre plzzzzzz!!!
0