--- title: Error slug: Web/JavaScript/Reference/Global_Objects/Error translation_of: Web/JavaScript/Reference/Global_Objects/Error original_slug: Web/JavaScript/Referencia/Objectes_globals/Error ---
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.
new Error([missatge[, fitxer[, numeroLinia]]])
missatgefitxer {{non-standard_inline}}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().numeroLinia {{non-standard_inline}}Error creat. Per defecte rep el valor del número de línia que conté la invocació al constructor Error().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 {{jsxref("Error.prototype")}}.
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.
Error.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 ErrorNormalment hom crea un objecte Error amb la intenció de llençar-lo tot emprant la paraula clau {{jsxref("Statements/throw", "throw")}}. Els errors es poden manegar utilitzant la construcció {{jsxref("Statements/try...catch", "try...catch")}}:
try {
throw new Error('Oooops!');
} catch (e) {
alert(e.name + ': ' + e.message);
}
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 {{jsxref("Object.prototype.constructor", "constructor")}} de l'error o bé, si s'està escrivint el codi per a motors JavaScript moderns, mitjançant la paraula clau {{jsxref("Operators/instanceof", "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
}
É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'
}
| Especificació | Estat | Comentaris |
|---|---|---|
| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definició inicial. Implementat a JavaScript 1.1. |
| {{SpecName('ES5.1', '#sec-15.11', 'Error')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES6', '#sec-error-objects', 'Error')}} | {{Spec2('ES6')}} |
| Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Suport bàsic | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Característica | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Suport bàsic | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |