Ejemplo de la primera posibilidad:
Código:
Ejemplo de la segunda posibilidad:// Creamos un objeto Error para cada tipo de error a manejar var argumentError = new Error("argumentError"); // ...creamos todos los necesarios... // Código de la aplicación function foo(string) { // Levantamos el error if(typeof(string) != "string") { throw argumentError; } }
Código:
Con el segundo método, si el programador que hace uso de la librería no es muy habilidoso y comete muchos errores en el uso de la librería se crearán un montón de objetos Error y muchos de ellos repetidos. ¿El colector de basura es suficientemente fiable? ¿Se eliminan los nuevos objetos creados al perder toda referencia en tiempo de ejecución o se hace al final?// Código de la aplicación function foo(string) { // Creamos y levantamos el error if(typeof(string) != "string") { throw new Error("ArgumentError"); } }
Haciendo uso del primer método se crean los objetos necesarios y se mantienen durante toda la ejecución, pero tiene un problema y es que si se modifica por error (o expresamente) el mensaje de error repercutirá en todos los errores posteriores del mismo tipo.
¿Cuál es el más indicado?¿Cuál utilizan los navegadores IE y Firefox?
Gracias de antemano.