Sites


PROCESSING - 2

Les erreurs courantes

Processing affiche un certain nombre de messages d'erreur dans la bande grise de la console (qui dans ce cas de figure change de couleur en devenant rouge foncé). Voici une liste des erreurs les plus courantes.

Unexpected token

Cette erreur se produit fréquemment lorsque vous oubliez un « ;  » en fin de ligne ou que vous n'avez pas correctement fermé un bloc d'accolades. Le programme voit une instruction qui fait deux lignes et dont la syntaxe est par conséquent erronée.

int nombreEntier  = 1
float nombreVirgule = 0.1;

erreurs2

Le code correct est :

int nombreEntier  = 1;
float nombreVirgule = 0.1;

Cannot find anything named

Cette erreur se produit lorsque vous appelez une variable qui n'existe pas. Vérifiez que vous avez bien déclaré votre variable et que vous avez respecté la portée des variables.

int nombre2 = nombre1 + 5;

erreurs3

Le code correct est :

int nombre1 = 10;
int nombre2 = nombre1 + 5;

Found one too many...

Cette erreur se produit lorsque vous n'avez pas correctement fermé un bloc par une accolade.

void draw() {

}

void setup() {

erreur4

Le code correct est :

void draw() {

}

void setup() {

}

ArithmeticException: / by zero

int diviseur = 0;
println(1 / diviseur);

erreur9

Dans Processing, on ne peut jamais diviser un nombre par zéro. Au besoin, vérifier que le diviseur n'est pas zéro avant de faire la division. C'est la fonction du morceau de code suivant :

int diviseur = 0;
if (diviseur != 0) {
  println(1 / diviseur);
} else {
  println("On ne peut pas diviser par zéro!");
}

Cannot convert ... to ...

Cette erreur survient quand vous essayez d'affecter une valeur qui ne correspond pas au type d'une variable.

int a = 10;
float b = 10.5;

a = b;

erreur5

Dans le cas présent, pour que nous puissions affecter un nombre à virgule à une variable qui est prévue pour stocker un nombre entier, il faut forcer Processing à la transformer. Le code correct est :

int a = 10;
float b = 10.5;

a = int(b);

ArrayIndexOutOfBoundsException

Cette erreur survient lorsque vous tentez d'accéder à un élément en dehors des limites d'un tableau. Dans l'exemple suivant, le tableau à une taille de 3 (case 0, 1 et 2) et nous essayons d'accéder à la case 4.

int[] nombres = new int[3];
nombres[0] = 1;
nombres[1] = 20;
nombres[2] = 5;

println(nombres[4]);

erreur8

Le code correct est le suivant (la 3e case correspond au rang 2 et non pas au rang 3 ou 4 puisqu'un tableau commence toujours à partir d'une case de rang 0) :

int[] numbers = new int[3];
numbers[0] = 1;
numbers[1] = 20;
numbers[2] = 5;

println(numbers[2]);

NullPointerException

Cette erreur se produit lorsque vous tentez d'accéder à un élément qui n'existe pas en mémoire. Par exemple en essayant d'accéder à un objet qui n'a pas encore été initialisé.

Balle maBalle;

void setup() {
  maBalle.x = 10;
}

class Balle {
  int x;
  int y;
}

erreur6

Le code correct est :

Balle maBalle = new Balle();

void setup() {
  maBalle.x = 10;
}

class Balle {
  int x;
  int y;
}

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.