Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. JavaScript
  3. Referencia de JavaScript
  4. Objetos globales
  5. Error

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

Error

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julio de 2015⁩.

* Some parts of this feature may have varying levels of support.

Los objetosError se lanzan cuando ocurren errores en tiempo de ejecución. También puedes utilizar el objetoError como objeto base para excepciones definidas por el usuario. Ve más adelante los tipos de errores estándar integrados.

Descripción

Los errores en tiempo de ejecución dan como resultado la creación y lanzamiento de nuevos objetosError.

TiposError

Además del constructor genéricoError, hay otros siete constructores de errores en el núcleo de JavaScript. Para conocer las excepciones de lado del cliente, consultaDeclaraciones para el manejo de excepciones.

EvalError

Crea una instancia que representa un error que ocurre con respecto a la función globaleval().

InternalError

Crea una instancia que representa un error que ocurre cuando se produce un error interno en el motor de JavaScript. Por ejemplo: "demasiada recursividad".

RangeError

Crea una instancia que representa un error que ocurre cuando una variable numérica o parámetro está fuera de su rango válido.

ReferenceError

Crea una instancia que representa un error que ocurre cuando se quita la referencia a una referencia no válida.

SyntaxError

Crea una instancia que representa un error de sintaxis.

TypeError

Crea una instancia que representa un error que ocurre cuando una variable o parámetro no es de un tipo válido.

URIError

Crea una instancia que representa un error que ocurre cuandoencodeURI() odecodeURI() pasan parámetros no válidos.

Constructor

Error()

Crea un nuevo objetoError.

Métodos estáticos

Error.captureStackTrace()

Una funciónV8 no estándar que crea la propiedadstack en una instancia deError.

Propiedades de la instancia

Error.prototype.message

Mensaje de error.

Error.prototype.name

Nombre del error.

Error.prototype.description

Una propiedad no estándar de Microsoft para la descripción del error. Similar amessage.

Error.prototype.number

Una propiedad no estándar de Microsoft para un número de error.

Error.prototype.fileName

Una propiedad no estándar de Mozilla para la ruta al archivo que generó este error.

Error.prototype.lineNumber

Una propiedad no estándar de Mozilla para el número de línea en el archivo que generó este error.

Error.prototype.columnNumber

Una propiedad no estándar de Mozilla para el número de columna en la línea que generó este error.

Error.prototype.stack

Una propiedad no estándar de Mozilla para un seguimiento de la pila.

Métodos de instancia

Error.prototype.toString()

Devuelve una cadena que representa el objeto especificado. Redefine el métodoObject.prototype.toString().

Ejemplos

Lanzar un error genérico

Normalmente, creas un objetoError con la intención de generarlo utilizando la palabra clavethrow. Puedes manejar el error usando la construccióntry...catch:

js
try {  throw new Error("¡Ups!");} catch (e) {  console.error(e.name + ": " + e.message);}

Manejar de un error específico

Puede elegir manejar solo tipos de error específicos probando el tipo de error con la propiedadconstructor del error o, si estás escribiendo para motores JavaScript modernos, la palabra claveinstanceof:

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

TiposError personalizados

Posiblemente desees definir tus propios tipos de error derivados deError para poder lanzarlo conthrow new MyError() y usarinstanceof MyError para verificar el tipo de error en el controlador de excepciones. Esto da como resultado un código de manejo de errores más limpio y consistente.

Consulta"¿Cuál es una buena manera de extenderError en JavaScript?" en StackOverflow para una discusión en profundidad.

ClaseError personalizado en ES6

Advertencia:Las versiones de Babel anteriores a la 7 pueden manejar métodos de claseCustomError, pero solo cuando se declaran conObject.defineProperty(). De lo contrario, las versiones antiguas de Babel y otros transpiladores no manejarán correctamente el siguiente código sinconfiguración adicional.

Nota:Algunos navegadores incluyen el constructorCustomError en el seguimiento de la pila cuando se utilizan clases de ES2015.

js
class CustomError extends Error {  constructor(foo = "bar", ...params) {    // Pasa los argumentos restantes (incluidos los específicos del proveedor) al constructor padre    super(...params);    // Mantiene un seguimiento adecuado de la pila para el lugar donde se lanzó nuestro error (solo disponible en V8)    if (Error.captureStackTrace) {      Error.captureStackTrace(this, CustomError);    }    this.name = "CustomError";    // Información de depuración personalizada    this.foo = foo;    this.date = new Date();  }}try {  throw new CustomError("baz", "bazMessage");} catch (e) {  console.error(e.name); // CustomError  console.error(e.foo); // baz  console.error(e.message); // bazMessage  console.error(e.stack); // stacktrace}

ObjetoError personalizado ES5

Advertencia:Todos los navegadores incluyen el constructorCustomError en el seguimiento de la pila cuando se usa una declaración de prototipo.

js
function CustomError(foo, message, fileName, lineNumber) {  var instance = new Error(message, fileName, lineNumber);  instance.name = "CustomError";  instance.foo = foo;  Object.setPrototypeOf(instance, Object.getPrototypeOf(this));  if (Error.captureStackTrace) {    Error.captureStackTrace(instance, CustomError);  }  return instance;}CustomError.prototype = Object.create(Error.prototype, {  constructor: {    value: Error,    enumerable: false,    writable: true,    configurable: true,  },});if (Object.setPrototypeOf) {  Object.setPrototypeOf(CustomError, Error);} else {  CustomError.__proto__ = Error;}try {  throw new CustomError("baz", "bazMessage");} catch (e) {  console.error(e.name); // CustomError  console.error(e.foo); // baz  console.error(e.message); // bazMessage}

Especificaciones

Specification
ECMAScript® 2026 Language Specification
# sec-error-objects

Compatibilidad con navegadores

Ve también

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp