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 salte en la línea foo.bar = 42
. En cambio, incluso cuando habilito 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 anteriormente en esta página o usar este jsFiddle .
javascript
google-chrome
debugging
webkit
avernet
fuente
fuente
console.log(gaga)
) o a una propiedad indefinida (como enwindow.foo.bar
).Respuestas:
Editar: el enlace original con el que respondí ahora no es válido . La URL más nueva sería https://developers.google.com/web/tools/chrome-devtools/javascript/add-breakpoints#exceptions a 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 que rompa 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 los cambios de DOM o eventos de red.
Normalmente no volvería a responder una pregunta, pero tenía la misma pregunta y encontré esta respuesta ahora incorrecta, así que pensé que pondría esta información aquí para las personas que vinieron más tarde en la búsqueda. :)
fuente
Tengo problemas para conseguirlo, así que publico fotos que muestran diferentes opciones:
Chrome 75.0.3770.142 [29 de julio de 2018]
IU muy muy similar desde al menos Chrome 38.0.2125.111 [11 de diciembre de 2014]
En pestaña
Sources
:Cuando el botón está activado, puede
Pause On Caught Exceptions
hacerlo con la casilla de verificación a continuación:Versión anterior
Chrome 32.0.1700.102 [03 de febrero de 2014]fuente
Esto ahora es compatible con Chrome mediante el botón "Pausa en todas las excepciones".
Para habilitarlo:
Tenga en cuenta que este botón tiene múltiples estados. Sigue haciendo clic en el botón para cambiar entre
fuente
Casi cualquier error arrojará una excepción. Los únicos errores que se me ocurren que no funcionarían con la opción "pausa en excepciones" son los errores de sintaxis, que ocurren antes de que se ejecute el código, por lo que no hay lugar para pausar de todos modos y ninguno de los códigos se ejecutará.
Aparentemente, Chrome no se detendrá en la excepción si está dentro de un bloque try-catch. Solo se detiene en excepciones no detectadas. No sé de ninguna manera de cambiarlo.
Si solo necesita saber en qué línea ocurrió la excepción (entonces podría establecer un punto de interrupción si la excepción es reproducible), el
Error
objeto dado al bloque catch tiene unastack
propiedad que muestra dónde ocurrió la excepción.fuente
Desafortunadamente, parece que las Herramientas para desarrolladores en Chrome no pueden "detenerse en todos los errores", como lo hace Firebug.
fuente