290 votes

JavaScript : Y a-t-il un moyen d’obtenir Chrome arrêt sur toutes les erreurs ?

Je suis à la recherche d'un équivalent en Chrome à l' "arrêt sur toutes les erreurs" fonctionnalités de Firebug. Dans l'onglet Scripts, Chrome a une "pause toutes les exceptions", mais ce n'est pas tout à fait la même que la rupture sur toutes les erreurs.

Par exemple, lors du chargement d'une page avec le code suivant, je voudrais Chrome d'arrêt sur la ligne, foo.bar = 42. Au lieu de cela, même lors de l'activation de la "Pause toutes les exceptions", je n'obtenez pas le résultat attendu.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <script type="text/javascript">

            function doError() {
                foo.bar = 42;
            }

            window.onload = function() {
                try {
                    doError();
                } catch (e) {
                    console.log("Error", e);
                }
            }
        </script>
    </head>
    <body>
    </body>
</html>

Vous pouvez essayer le code collé ci-dessus sur cette page ou en utilisant ce jsFiddle.

368voto

Laguiz Points 1741

J'ai eu de la difficulté à obtenir si je poste des photos montrant les différentes options :

[Mise à JOUR 02 juillet 2014 : Chrome 35.0.1916.153]

Toujours même endroit enter image description here

Mais show case à la pause sur pris exceptions : enter image description here

[Mise à JOUR le 03 février 2014 : Chrome 32.0.1700.102]

enter image description here

enter image description hereenter image description hereenter image description here

La version précédente (27.0.1453.93 Stable)

Debug options

220voto

Brian Arnold Points 2176

Je me rends compte que cette question a une réponse, mais elle n'est plus exacte.

https://developer.chrome.com/devtools/docs/javascript-debugging#pause-on-exceptions - vous pouvez maintenant définir la rupture sur toutes les exceptions ou tout simplement non gérée. (Notez que vous devez être dans les Sources de l'onglet pour voir le bouton).

Chrome est également ajouté quelques autres vraiment utile point d'arrêt fonctionnalités, telles que la rupture sur les DOM changements ou des événements de réseau.

Normalement, je n'aurais pas re-répondre à une question, mais j'ai eu la même question que moi-même, et j'ai trouvé cela maintenant-mauvaise réponse, alors j'ai pensé que je l'avais mis cette information dans ici pour les personnes qui sont venues plus tard dans la recherche. :)

21voto

Brad Parks Points 5513

C'est maintenant pris en charge dans google Chrome, la "Pause toutes les exceptions" bouton.

Pour l'activer:

  • Aller aux "Sources" de l'onglet dans Chrome Developer Tools
  • Cliquez sur le bouton "Pause" au bas de la fenêtre pour passer en "Pause toutes les exceptions mode".

Notez que ce bouton a de multiples états. Continuez à cliquer sur le bouton pour basculer entre les

  • "Pause toutes les exceptions" - le bouton est de couleur bleu clair
  • "Faire une Pause sur les exceptions non traitées", le bouton est de couleur pourpre.
  • "Ne pas mettre en pause sur les exceptions" - le bouton est de couleur gris

1voto

Matthew Crumley Points 47284

Juste au sujet de toute erreur lèvera une exception. Les seules erreurs que je pense que ça ne marcherait pas avec la "pause sur les exceptions" option d'erreurs de syntaxe, ce qui arrive, avant que tout le code est exécuté, donc il n'y a pas de place pour mettre en pause et de toute façon aucun code sera exécuté.

Apparemment, google Chrome ne sera pas une pause sur l'exception, si c'est à l'intérieur d'un bloc try-catch. Il ne s'arrête sur les exceptions non traitées. Je ne connais pas de moyen de le changer.

Si vous avez juste besoin de savoir quelle est l'exception qui s'est passé sur (puis vous pouvez définir un point d'arrêt si l'exception est reproductible), l' Error objet donné au bloc catch a un stack de la propriété qui indique l'endroit où l'exception s'est produite.

1voto

avernet Points 10603

Malheureusement, il les outils du développeur en Chrome semblent être incapables de « arrêt sur toutes les erreurs », tout comme Firebug.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X