Error

Resum

El constructor Error crea un objecte que representa un error. Quan succeeix un error en temps d'execució JavaScript llença una instància de tipus Error. L'objecte Error també es pot emprar com a objecte base per a excepcions definides per l'usuari. Vegeu més abaix per a tipus d'errors standard que forment part del nucli.

Sintaxi

new Error([missatge[, fitxer[, nombreLinia]]])

Paràmetres

missatge
Opcional. Descripció entenible per persones de l'error.
fitxer
Opcional. El valor de la propietat fitxer a l'objecte Error creat. Per defecte pren el valor del nom del fitxer que conté el codi que ha cridat el constructor Error().
nombreLinia
Opcional. El valor de la propietat lineNumber a l'objecte Error creat. Per defecte rep el valor del nombre de línia que conté la invocació al constructor Error().

Descripció

Els errors en temps d'execució esdevenen objectes Error nous que són creats i llençats.

Aquesta pàgina documenta l'ús de l'objecte Error en si mateix, així com el seu ús com funció constructora. Per a un llistat de les propietats i mètodes heretats per les instàncies de Error, vegeu Error.prototype.

Tipus d'errors

A més del construtor genèric Error hi ha altres sis constructors d'errors que formen part del nucli de JavaScript. Per a excepcions al cantó del client vegeu Sentències manegadores d'excepcions.

EvalError
Crea una instància que representa un error que succeeix a l'emprar la funció global eval().
InternalError
Crea una instància que representa un error que succeeix quan es llença un error intern des del motor de JavaScript. Per exemple: "massa recursivitat".
RangeError
Crea una instància que representa un error que succeeix quan una variable numèrica o paràmetre està fora del seu rang vàlid.
ReferenceError
Crea una instància que representa un error que succeeix quan es deixa de referenciar una referència invàlida.
SyntaxError
Crea una instància que representa un error de sintaxi que succeeix a l'interpretar codi dins eval().
TypeError
Crea una instància que representa un error que succeeix quan una variable o paràmetre és d'un tipus no vàlid.
URIError
Crea un error que representa un error que succeeix quan encodeURI() o decodeURl() reben paràmetres invàlids.

Propietats

Error.prototype
Permet afegir propietats a instàncies Error.

Mètodes

L'objecte global Error no contè mètodes propis. Tot i així, hereta alguns mètodes a través de la cadena de prototipus.

Instàncies Error

Propietats

Mètodes

Exemples

Exemple: Llençar un error genèric

Normalment hom crea un objecte Error amb la intenció de llençar-lo tot emprant la paraula clau throw. Els errors es poden manegar utilitzant la construcció try...catch:

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

Exemple: Manegar un error específic

this should probably be removedEs pot escollir fer-se càrrec només de tipus d'errors específics comparant el tipus d'error amb la propietat constructor de l'error o bé, si s'està escrivint el codi per a motors JavaScript moderns, mitjançant la paraula clau instanceof:

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
}

Exemple: Tipus d'errors personalitzats

És possible definir tipus d'errors propis derivats de Error, llençar-los mitjançant throw new MyError()  i utilitzar instanceof MyError per a comprovarel tipus d'error al manegador d'excepcions. A sota trobareu la forma més comuna de fer això.

Advertim que la instància MyError llençada reportarà lineNumber i fileName invàlids, com a mínim a Firefox.

Vegeu també la discussió a StackOverflow "Quina és una bona forma d'extrendre Error a JavaScript?".

// Crea un nou objecte, que hereta del prototipus constructor Error.
function MyError(message) {
  this.name = 'MyError';
  this.message = message || 'Missatge per defecte';
}
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);  // 'Missatge per defecte'
}

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

Especificacions

Especificació Estat Comentaris
ECMAScript 1st Edition (ECMA-262) Standard Definició inicial. Implementat a 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  

Compatibilitat amb navegadors

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes)
Característica Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Vegeu també

Document Tags and Contributors

 Contributors to this page: llue, teoli, enTropy
 Last updated by: llue,