ember.js error-handling

ember.js - ¿Puede una aplicación Ember(-cli) disparar window.onerror?



error-handling (3)

¿Hay algún tipo de error de javascript que no sea manejado por onerror en una aplicación ember (-cli)? En otros términos, ¿hay alguna necesidad de agregar un controlador a window.onerror ?

En mis pruebas no pude encontrar ningún error que no fuera manejado por Ember''s onerror. Los errores de sintaxis no pasaron el proceso de compilación de ember-cli.



En mi experiencia, no aconsejaría implementar una window.onerror , a menos que tenga una buena razón para hacerlo y sepa lo que puede estar haciendo.

Que yo sepa, todos los métodos de onerror de Ember se onerror la onerror de onerror y anulación, tiene el potencial de anular / deshabilitar todo el error en su aplicación.

Por ejemplo, recientemente tuve una experiencia en la que noté que todos mis errores js dejaron de conectarse a la consola por completo. La razón fue que otro desarrollador de mi equipo había iniciado en mi index.html para insertar una etiqueta <script> que utilizaba window.onerror para algún script de informe de error. El resultado fue que esa window invalidante literalmente inhabilitaba todos los onerror las onerror porque funcionan de forma burbujeante.

Creo que si quieres sobrescribir window.onerror debes asegurarte de que siempre devuelve false para que no impida el manejo de error predeterminado en el navegador.

Ver: https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror

Espero que eso ayude a aclarar hasta cierto punto.


EmberJS hace un excelente trabajo al contener errores que ocurren dentro de sus límites . Los errores causados ​​por su código Ember deberían ser canalizados al manejador específico de Ember.

Sin embargo, el JavaScript del navegador es una bestia complicada. Cualquier error de JavaScript que ocurra fuera de Ember no se capturará internamente y solo podrá ser expuesto por la window.onerror . Algunos ejemplos de estos podrían incluir:

  • Retrollamadas sin límites en funciones nativas como setTimeout y addEventListener
  • Bibliotecas e integraciones de JavaScript que no son de color ámbar, como Stripe, Twitter o Advertisements
  • Script de extensión de navegador que puede interactuar con DOM de maneras impredecibles.

Para tener una Ember.onerror completa de lo que está sucediendo con sus visitantes, probablemente debería adjuntar tanto a Ember.onerror como a window.onerror y enviar los informes nuevamente a sus registros. Incluso si no está desarrollando activamente, los cambios en el navegador pueden causar errores repentinos en su aplicación. Al igual que este error de webkit que hizo que la brasa arrojara errores . Hay buenas opciones para registrar errores automáticamente desde aplicaciones Ember, como TrackJS .

Divulgación: soy uno de los desarrolladores fundadores de TrackJS, así que he depurado muchos errores :)