 |
Bon courage !
On ne peut pas dire que les outils de débuggage offerts par
Javascript soient des plus évolués. Pour un peu, on se croirait
revenu aux temps préhistoriques du Basic. Ainsi, corriger vos erreurs
en Javascript ressemble curieusement à une enquête policière digne de
Sherlock Holmes ou au jeu des sept erreurs.
En effet, on ne peut se fier à 100% aux précisions données par
l'interpréteur. Le fameux "Javascript Error
line x "est plutôt à comprendre comme "ça commence à
foirer à la ligne x" et il sera parfois nécessaire de remonter de
plusieurs lignes dans le script pour trouver l'erreur initiale.

|
 |
Les types
d'erreurs.
Il y a 3 grandes catégories d'erreurs dans l'utilisation d'un
programme Javascript :
- les erreurs au chargement.
- les erreurs à l'exécution.
- les erreurs de logique.

|
 |
Les erreurs au
chargement
Au chargement du script par le browser, Javascript passe en revue
les différentes erreurs qui peuvent empêcher le bon déroulement de
celui-ci.
Les erreurs au chargement, nombreuses lors de l'apprentissage de
Javascript, sont souvent dues à des fautes de frappe et/ou des
erreurs de syntaxe.
Pour vous aider à déterminer l'erreur, Javascript affiche sa fameuse
boite de message d'erreur, vous indique le problème et le texte de
l'erreur. Ne perdez pas de vue que Javascript ne vous indique pas
toujours l'erreur véritable et que selon l'erreur, celle-ci peut se
situer bien plus avant dans le script.
Des exemples classiques d'erreurs au chargement sont des parenthèses
ou des accolades non fermées, des guillemets manquants, etc.

|
 |
Les erreurs à
l'exécution
Ici votre script se charge sans problème, mais cette satanée boite
de message d'erreurs apparaît lorsque l'exécution du script est
demandée. Alors que les erreurs au chargement étaient surtout dues au
mauvais usage de la syntaxe, les erreurs à l'exécution proviennent
d'un mauvais usage des commandes ou des objets Javascript.
Un exemple d'erreur à l'exécution est un appel erroné à une variable
ou une fonction inexistante (car il y a, par exemple, une erreur dans
le nom de la variable ou de la fonction).

|
 |
Les erreurs de
logique
Ce sont les plus vicieuses car le "débuggeur" de Javascript ne
signale bien entendu aucune erreur et votre script se déroule
correctement. Hélas, à l'arrivée, le résultat ne correspond pas à
celui espéré.
Il n'y a plus qu'à revoir la construction logique de votre script.
Cent fois sur le métier remettez votre ouvrage...
De nombreuses erreurs de logique sont dues à des valeurs de
variables incorrectes.
Voici quelques conseils :
- Dans le cas où l'utilisateur doit entrer une valeur, celle-ci
était-t-elle au bon format? N'est-il pas utile de prévoir un petit
script pour vérifier le format d'entrée ?
- On peut ajouter des points de contrôle de valeur de variable ou
de passage avec l'instruction alert(variable) ou alert("Point de
passage1").

|
 |
Les grands
classiques des erreurs.
On peut dresser une liste d'erreurs que tous les débutants (et
même certains plus confirmés) font ou feront tôt ou tard.
- Soyez vigilant au nom des variables (case sensitive).
Mavariable et mavariable sont deux variables distinctes. Eviter
d'utiliser des noms de variables trop rapprochants.
- Le nom de la fonction a-t-il bien la même orthographe dans la
déclaration et dans l'appel. Le nom des fonctions est-il bien
unique dans le script?
- N'oubliez pas les guillemets ou apostrophes avant et après les
chaînes de caractères.
- Avez-vous bien mis des virgules entre vos différents paramètres
ou arguments?
- Avez-vous placé vos accolades au bon endroit sans avoir oublié
de les fermer (surtout dans le cas de blocs de commandes
imbriquées).
- Assurez-vous que les noms des objets Javascript sont corrects.
Le piège est que les objets Javascript commencent par une majuscule
(Date, Math, Array...) mais que les propriétés commencent par une
minuscule (alert).
- La confusion entre = opérateur d'affectation et == opérateur de
comparaison

|
 |
Conclusion
Débugger du Javacript n'est pas toujours la joie mais avec
l'habitude de ce genre d'exercice, on s'en sort assez bien. Conscient
de ce réel problème, on semble mettre au point chez Netscape et
Microsoft des débuggeurs mais nous n'avons pas encore eu l'occasion
de les tester. |