Una cosa que me está volviendo loco es cómo Javascript falla silenciosamente en muchas situaciones diferentes.¿Hay alguna forma de evitar que Javascript falle silenciosamente?
(ejemplo removido porque confunde el punto de mi pregunta)
Muchas veces me he encontrado con un error que le dará un mensaje de error cuando se escribe en la consola de Firebug, pero cuando se ejecuta dentro de la secuencia de comandos página, falla silenciosamente, incluso con la consola Firebug activa y abierta.
Algunos de estos problemas pueden ser detectados por Crockford's JsLint, pero aún muchos no lo harán.
¿Hay alguna forma de habilitar más mensajes de error en el navegador?
¿Se puede hacer esto sin utilizar entornos de depuración de JavaScript? Creo que los depuradores no me ayudan mucho. Normalmente rocío unas pocas instrucciones console.log() y puedo localizar el problema en un minuto. Lo que me vuelve loco es que los errores silenciosos en Javascript pueden pasar desapercibidos durante mucho tiempo o aparecer de forma que no son nada obvios. Es aún más frustrante porque probar el enunciado en la consola NO DA un error, entonces, ¿qué está pasando?
He tenido el mismo problema con las excepciones por cierto, ¿alguien lo notó? Muchas veces mis declaraciones throw new
no funcionan en absoluto. Pero si escribo lo mismo en la consola, lo hace.
Gracias por sus útiles comentarios (primeras respuestas), pero esa no es mi pregunta. Estas pruebas son útiles cuando necesita desinfectar parámetros en una clase, por ejemplo, cuando no está seguro del entorno. No desea probar la existencia de propiedades o clases donde esperan que estén allí; eso sería hinchar el código sin ninguna razón.
¿Qué quiere decir con error silencioso? Cuando una página web se ejecuta en los navegadores, todos los errores de JavaScript son silenciosos de manera predeterminada, porque no hay motivo para mostrárselos a los visitantes del sitio. –
Supongo que me pregunto qué están haciendo los gurús de Javascript de Yahoo y Google con esto. Tienen un gran compilador, y existe JsLint, pero no es suficiente. No puedo creer que estén aguantando esto. Debo estar perdiendo algo. Estoy tratando de averiguar si uno DEBE usar un entorno de depuración como el proporcionado por Microsoft, o si hay otros métodos para ejecutar el navegador en modo desarrollador y ver todos esos errores en la consola. ¿Y por qué Firebug permanece en silencio cuando se ejecuta la página, pero muestra errores cuando escribo el código ofensivo en la consola (con la consola siempre abierta)? –