Je recherche un équivalent dans Chrome de la fonctionnalité "Interrompre toutes les erreurs" de Firebug. Dans l'onglet Scripts, Chrome dispose d'une "pause sur toutes les exceptions", mais cela ne signifie pas nécessairement que toutes les erreurs sont interrompues.
Par exemple, lors du chargement d'une page avec le code suivant, je souhaiterais que Chrome soit interrompu sur la ligne foo.bar = 42
. Au lieu de cela, même en activant l'option "Suspendre toutes les exceptions", je n'obtiens 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 ceci jsFiddle .
Modifier: Le lien d'origine auquel j'ai répondu est maintenant invalide . L'URL la plus récente serait https://developers.google.com/web/tools/chrome-devtools/javascript/add-points d'arrêt # exceptions à partir de 2016-11-11.
Je me rends compte que cette question a une réponse, mais elle n’est plus exacte. Utilisez le lien ci-dessus ^
(lien remplacé par édité ci-dessus) - vous pouvez maintenant le définir pour qu'il casse toutes les exceptions ou simplement celles qui ne sont pas gérées. (Notez que vous devez être dans l'onglet Sources pour voir le bouton.)
Chrome a également ajouté certaines fonctionnalités de point d'arrêt vraiment utiles, telles que la modification des modifications du DOM ou des événements réseau.
Normalement, je ne répondrais pas à une question, mais j'avais moi-même la même question et j'ai trouvé cette réponse maintenant erronée. :)
Ceci est désormais pris en charge dans Chrome par le bouton "Suspendre toutes les exceptions".
Pour l'activer:
Notez que ce bouton a plusieurs états. Continuez à cliquer sur le bouton pour basculer entre
Malheureusement, les outils de développement de Chrome ne semblent pas être en mesure de "s’arrêter sur toutes les erreurs", contrairement à Firebug.
À peu près toutes les erreurs jetteront une exception. Les seules erreurs que je puisse imaginer qui ne fonctionneraient pas avec l'option "pause sur les exceptions" sont des erreurs de syntaxe, qui se produisent avant que le code soit exécuté. Il n'y a donc aucun endroit où faire une pause et aucun code ne sera exécuté.
Apparemment, Chrome ne fera pas de pause sur l'exception si elle se trouve dans un bloc try-catch. Il ne marque que des exceptions non capturées. Je ne connais aucun moyen de le changer.
Si vous avez juste besoin de savoir sur quelle ligne l'exception s'est produite (vous pouvez définir un point d'arrêt si l'exception est reproductible), l'objet Error
donné au bloc catch a une propriété stack
qui montre où une exception s'est produite.