Faire crasher un programme

Fermé
linquisiteur - 4 août 2013 à 21:04
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 4 août 2013 à 22:17
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
4 août 2013 à 21:27
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
si je passe nul en paramètre je rentre quand même dans la procédure?
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
4 août 2013 à 22:17
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