MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

Resumen

Representa un error en tiempo de ejecución.

Syntax

new Error()
new Error(mensaje)

Los errores en tiempo de ejecución también tienen como resultado un nuevo objeto Error que es creado y lanzado.

Parámetros

mensaje
Mensaje de error.

Descripción

Además del Error base, existen otros seis tipos de error en el núcleo de JavaScript 1.5:

EvalError
Lanzado cuando un error ocurre al ejecutar código en eval()
RangeError
Lanzado cuando una variable numérica o un parámetro se encuentra fuera de su rango válido
ReferenceError
Lanzado cuando se referencia una referencia no válida
SyntaxError
Lanzado cuando ocurre un error de sintaxis mientras se traduce (parsea) código en eval()
TypeError
Lanzado cuando una variable o un parámetro no es del tipo válido
URIError
Lanzado cuando encodeURI() o decodeURI() se le pasan parámetros no válidos

Propiedades

Error.constructor
Especifica la función que crea el prototipo de un objeto.
Error.description
Descripción / mensaje del error (sólo IE).
Error.fileName
Ruta de acceso al archivo que generó este error (sólo Mozilla).
Error.lineNumber
Número de línea en el archivo que generó este error (sólo Mozilla).
Error.message
Mensaje de error.
Error.name
Nombre del error.
Error.number
Numero del error (sólo IE).
Error.prototype
Permite agregar propiedades a un objeto Error.
Error.stack

Rastreo de la pila (sólo Mozilla).

 

Ejemplos

Ejemplo: Lanzando un error genérico

Normalmente los objetos de Error se crean con la intención de lanzarlos utilizando throw. Es posible manejar el error mediante try...catch:

try {
    throw new Error("Whoops!");
} catch (e) {
    alert(e.name + ": " + e.message);
}

Ejemplo: Manejando un error específico

Puede elegir manejar sólo tipos de error específicos probando el tipo de error con la propiedad constructor del error o, si está escribiendo para los motores de JavaScript modernos,  instanceof palabra clave:

try {
    foo.bar();
} catch (e) {
    if (e instanceof EvalError) {
        alert(e.name + ": " + e.message);
    } else if (e instanceof RangeError) {
        alert(e.name + ": " + e.message);
    }
    // ... etc
}


Tipos de error personalizados

Es posible que desee definir sus propios tipos de error derivados de Error para poder lanzar new MyError()  y usar instanceof MyError para comprobar el tipo de error en el manejador de excepciones. A continuación se muestra la forma habitual de hacerlo.

Tenga en cuenta que el trono de error informará incorrecta número de línea y nombre de archivo al menos en Firefox.

See also the "What's a good way to extend Error in JavaScript?" discussion on Stackoverflow.

// Create a new object, that prototypically inherits from the Error constructor
function MyError(message) {
  this.name = 'MyError';
  this.message = message || 'Default Message';
  this.stack = (new Error()).stack;
}
MyError.prototype = Object.create(Error.prototype);
MyError.prototype.constructor = MyError;

try {
  throw new MyError();
} catch (e) {
  console.log(e.name);     // 'MyError'
  console.log(e.message);  // 'Default Message'
}

try {
  throw new MyError('custom message');
} catch (e) {
  console.log(e.name);     // 'MyError'
  console.log(e.message);  // 'custom message'
}

Specifications

Specification Status Comment
ECMAScript 1st Edition (ECMA-262) Standard Initial definition. Implemented in JavaScript 1.1.
ECMAScript 5.1 (ECMA-262)
The definition of 'Error' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Error' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Error' in that specification.
Draft  

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) 6 (Yes) (Yes)
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) 8.1 (Yes) (Yes) (Yes)

See also

Etiquetas y colaboradores del documento

Etiquetas: 
 Colaboradores en esta página: akadoshin, gfernandez, teoli, Talisker, Mgjbot, Sheppy
 Última actualización por: akadoshin,