Faire crasher un programme

linquisiteur -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, je tente de trouver des solutions pour faire crasher un morceau de programme. Le but étant de voir qu'elle genre de paramètre peut poser problème lorsque l'on ne met pas de précondition.

public class ExerciceEtudiant {

	public static void initTab (String s, int[] a)
	{
		if(!s.equals("vrai"))	//ligne1
		{
			int x = a[0];	//ligne2
			a[3] = x + 3;	//ligne3
		}
		else
		{
			int i = a.length;//ligne4
			while( i != 0)	 //ligne5
			{
				a[i] = i + 'a';//ligne6
				i = i -1;      //ligne7
			}
			a[0] = 'a';	//ligne8
		}
	}
}



Pour le moment je n'ai trouver que un moyen en ligne 3. (mettre un tableau de moins de 3 case. Je ne vois pas d'autre paramètre mais je n'arrive peut être pas encore à l'es voir..

Merci d'avance de votre aide.

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Dans les erreurs classiques :

NullPointerException : si tu passes null en paramètre

initTab(s,null);
initTab(null,a);
initTab(null,null);

ArrayIndexOutOfBoundsException : si le tableau n'est pas assez grand

int[] a = new int[3];
initTab(s,a);
1
linquisiteur
 
si je passe nul en paramètre je rentre quand même dans la procédure?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Oui, mais tu va planter :

- si s==null : sur l'appel de méthode s.equals
- si a==null : sur la récupération de la case a[0] ou de l'attribut a.length (selon la valeur de s).
0