2011-08-19 10 views
10

¿Cómo puedo suprimir todas las ventanas emergentes de error de tiempo de ejecución de JavaScript, desde el lado de los programadores?Cómo suprimir todos los errores de tiempo de ejecución de JavaScript?

+3

Puede intentar envolver todo su código en un bloque 'try ... catch'. Pero es mejor corregir errores;) –

+0

a veces no hay posibilidad de usar 'try ... catch', por ejemplo, si alguna biblioteca externa arroja errores. Usar el evento window.onerror es la solución en este caso, ver mi respuesta – Skip

Respuesta

16

Para suprimir todos los errores de JavaScript, parece haber un evento window.onerror.
Si se reemplaza lo antes posible (por ejemplo, justo después del encabezado) por una función que devuelve verdadero, no habrá ventanas emergentes de error, lo cual es bastante útil después de que se realiza la depuración.

<head> 
<script type="text/javascript"> 
    window.onerror = function(message, url, lineNumber) { 
     // code to execute on an error 
     return true; // prevents browser error messages 
    }; 
</script> 
... 

Registro de errores es posible también, como se ha explicado here

+1

_El evento HTMLDocumentEvents4 :: onerror se activa para los errores de tiempo de ejecución, pero no para los errores de compilación. Además, los cuadros de diálogo de error generados por los depuradores de scripts no se suprimen ** ** al devolver true._ desde [MSDN] (http://msdn.microsoft.com/en-us/library/ff976266 (v = vs.85)) .aspx) – Bakudan

+0

Este método no parece funcionar para aplicaciones Angular 2.x +, probablemente debido a que Angular maneja los errores en sí. –

1

hice un pequeño script para suprimir un error como "@" hace en PHP.

Aquí hay un example.

var at = function(test) { 
    try { 
     if(typeof test === "function") return test();    
     else return test || null;   
    } catch (e) { 
     return null; 
    } 
}; 
Cuestiones relacionadas