habilitar - JavaScript: ¿Hay una manera de hacer que Chrome se rompa en todos los errores?
instalar javascript (5)
Casi cualquier error lanzará una excepción. Los únicos errores que se me ocurren que no funcionan con la opción "pausar en excepciones" son los errores de sintaxis, que ocurren antes de que se ejecute cualquiera de los códigos, por lo que no hay lugar para pausar y no se ejecutará ninguno de los códigos.
Aparentemente, Chrome no se detendrá en la excepción si está dentro de un bloque try-catch. Sólo se detiene en excepciones no capturadas. No conozco ninguna forma de cambiarlo.
Si solo necesita saber en qué línea se produjo la excepción (entonces podría establecer un punto de interrupción si la excepción es reproducible), el objeto Error
dado al bloque catch tiene una propiedad de stack
que muestra dónde ocurrió la excepción.
Estoy buscando un equivalente en Chrome para la funcionalidad "romper todos los errores" de Firebug. En la pestaña Scripts, Chrome tiene una "pausa en todas las excepciones", pero esto no es lo mismo que romper todos los errores.
Por ejemplo, al cargar una página con el siguiente código, me gustaría que Chrome interrumpa la línea foo.bar = 42
. En cambio, incluso cuando se habilita la "Pausa en todas las excepciones", no obtengo el resultado esperado.
<!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>
Puede probar el código pegado arriba en esta página o usando este jsFiddle .
Desafortunadamente, las Herramientas de desarrollo en Chrome parecen ser incapaces de "detenerse en todos los errores", como lo hace Firebug.
Edición: el enlace original con el que respondí ahora no es válido . La nueva URL sería https://developers.google.com/web/tools/chrome-devtools/javascript/add-breakpoints#exceptions partir del 2016-11-11.
Me doy cuenta de que esta pregunta tiene una respuesta, pero ya no es precisa. Usa el enlace de arriba ^
(enlace reemplazado por editado anteriormente): ahora puede configurarlo para interrumpir todas las excepciones o solo las no controladas. (Tenga en cuenta que debe estar en la pestaña Fuentes para ver el botón).
Chrome también agregó algunas otras capacidades de punto de interrupción realmente útiles ahora, como interrumpir cambios de DOM o eventos de red.
Normalmente no contestaría una pregunta, pero yo mismo tenía la misma pregunta, y encontré esta respuesta ahora equivocada, así que pensé que pondría esta información aquí para las personas que vinieron más tarde en la búsqueda. :)
Esto ahora se admite en Chrome con el botón "Pausa en todas las excepciones".
Para habilitarlo:
- Vaya a la pestaña "Fuentes" en Chrome Developer Tools
- Haga clic en el botón "Pausa" en la parte inferior de la ventana para cambiar a "Pausa en el modo de todas las excepciones".
Tenga en cuenta que este botón tiene varios estados. Sigue haciendo clic en el botón para cambiar entre
- "Pausa en todas las excepciones": el botón es de color azul claro
- "Pausa en excepciones no capturadas", el botón es de color púrpura .
- "No hacer pausa en las excepciones": el botón es de color gris
Tengo problemas para conseguirlo, así que publico imágenes que muestran diferentes opciones:
Chrome 58.0.3029.96 [30 de mayo de 2017]
Cierto desde al menos Chrome 38.0.2125.111 [11 de diciembre de 2014]
En la pestaña Sources
: Screenshot for Chrome 50.0.2661.75
Cuando el botón está activado, puede Pause On Caught Exceptions
con la casilla de verificación a continuación: