Forum Programmation.autre Débugger du javascript / JQuery

Posté par . Licence CC by-sa
Tags : aucun
3
29
oct.
2014

Bonjour, j'ai un niveau débutant moyen+ en javascript mais il m'arrive d'avoir besoin d'en écrire un peu pour améliorer mes IHM.
Dernièrement je me suis trouvé face à un bug que j'ai mis une heure à résoudre à cause du caractère complètement abscons de l'erreur renvoyée :

// Un simple if
    if($('input[name=user_cp]').val == 5)
// Mais j'ai oublié les parenthèses à val()

Et là ma console Firefox me renvoie TypeError: this.each is not a function en pointant sur une obscure ligne de la bibliothèque utilisée (JQuery).

Ma question (le bug étant finalement trivial) : Est-ce qu'il y a moyen d'avoir des erreurs plus claires lorsqu'on utilise ce genre de bibliothèqe ?

  • # g

    Posté par . Évalué à 3.

    Salut,

    De manière générale quand jQuery ou autres lancent une erreur obscure en pointant sur la lib c'est qu'il y a une erreur de syntaxe (ou un conflit, deux jQuery chargés par exemples). Donc en soit l'erreur est très claire ! Tu peux difficilement en attendre plus, si il fallait prévoir toutes les erreurs de typo… Le bon côté c'est que la prochaine fois ça te prendra 15 secondes à corriger :)

    • [^] # Re: g

      Posté par (page perso) . Évalué à 1.

      la question m'intéresse aussi.

      Je comprend très bien que jquery ne peux pas prévoir toutes les erreurs de typo.

      Par contre un débuguer capable de remonter la stack d'appel serait très éfficace dans ce genre de cas:

      ex:

      error this.each() line 456978 de jquery
      called by this.jqueryTruc() line 4562 de jquery
      callled by this.val line line 10 de mon prog
      il m'arrive de faire un peu de js, mais j'ai vraiment du louper un truc du côté du workflow, meme les outils phare du domaine me semblent pas très pratiques (firebug…)

      • [^] # Re: g

        Posté par . Évalué à 1.

        Il me semble que firebug permet justement d'interrompre l’exécution du javascript sur les erreurs.
        (Onglet console -> bouton à gauche de "Effacer")

        Ensuite si on clic sur l'erreur en question, on se retrouve dans le debugger, et on peut voir la stack d'appel, naviguer dans les fichiers js, voir le contenu des variables, …

        Voir https://getfirebug.com/doc/breakpoints/demo.html "Breakpoints on Errors"

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.