ventana.onerror no funciona en chrome


Estoy tratando de agregar un evento onerror a mi sitio web.

window.onerror = function() {
    alert("an error");
}

Pero todo lo que recibo es:

notThere();
ReferenceError: notThere is not defined

¿Qué me estoy perdiendo?

Navegador: Chrome 26.0.1410.64 m

Pasos para reproducir:

  • añade el código a la consola.
  • añadir notThere () a la consola
Author: Dinkheller, 2013-04-24

3 answers

El window.onerror funciona en Chrome (ver jsfiddle - http://jsfiddle.net/PWSDF / ), pero aparentemente no en la consola, lo cual tiene algún sentido.

 30
Author: Lachezar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-21 22:37:53

Ventana.onerror no se activa cuando la consola genera directamente un error. Sin embargo, puede activarse a través de setTimeout, por ejemplo, setTimeout(function() { notThere(); }, 0);

Posible duplicado: Chrome: Se invocará un error en el código desde la ventana de activación de la consola dev.onerror?

 44
Author: wrschneider,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:53

Algunas otras razones que usted no puede ser capaz de manejar errores en window.onerror (aparte de los mencionados):

  • Otra biblioteca establece window.onerror después de usted.
  • Si está utilizando Angular, los errores no pasarán a través de window.onerror. Tienes que manejarlos usando esta fábrica:

        .factory('$exceptionHandler', function() {
            return function errorCatcherHandler(exception, cause) {
                console.error(exception);
                if (window.OnClientError) window.OnClientError(exception);
            };
        })
    

Véase:

Https://docs.angularjs.org/api/ng/service/$exceptionHandler

Http://bahmutov.calepin.co/catch-all-errors-in-angular-app.html

 18
Author: NoOne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-15 20:28:33