diff options
Diffstat (limited to 'files/ca/web/javascript/referencia/objectes_globals/error/index.html')
-rw-r--r-- | files/ca/web/javascript/referencia/objectes_globals/error/index.html | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/index.html new file mode 100644 index 0000000000..2e1592edc5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/index.html @@ -0,0 +1,224 @@ +--- +title: Error +slug: Web/JavaScript/Referencia/Objectes_globals/Error +translation_of: Web/JavaScript/Reference/Global_Objects/Error +--- +<div>{{JSRef}}</div> + +<h2 id="Resum">Resum</h2> + +<p>El constructor <strong><code>Error</code></strong> crea un objecte que representa un error. Quan succeeix un error en temps d'execució JavaScript llença una instància de tipus <code>Error</code>. L'objecte <code>Error</code> 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.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox">new Error([missatge[, fitxer[, numeroLinia]]])</pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>missatge</code></dt> + <dd>Opcional. Descripció entenible per persones de l'error.</dd> + <dt><code>fitxer</code> {{non-standard_inline}}</dt> + <dd>Opcional. El valor de la propietat <code>fitxer</code> a l'objecte <code>Error</code> creat. Per defecte pren el valor del nom del fitxer que conté el codi que ha cridat el constructor <code>Error()</code>.</dd> + <dt><code>numeroLinia</code> {{non-standard_inline}}</dt> + <dd>Opcional. El valor de la propietat <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">numeroLinia</span></font> de l'objecte <code>Error</code> creat. Per defecte rep el valor del número de línia que conté la invocació al constructor <code>Error()</code>.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Els errors en temps d'execució esdevenen objectes <code>Error</code> nous que són creats i llençats.</p> + +<p>Aquesta pàgina documenta l'ús de l'objecte <code>Error</code> 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 <code>Error</code>, vegeu {{jsxref("Error.prototype")}}.</p> + +<h3 id="Error_types" name="Error_types">Tipus d'errors</h3> + +<p>A més del construtor genèric <code>Error</code> hi ha altres sis constructors d'errors que formen part del nucli de JavaScript. Per a excepcions al cantó del client vegeu <a href="/en-US/docs/Web/JavaScript/Guide/Statements#Exception_Handling_Statements">Sentències manegadores d'excepcions</a>.</p> + +<dl> + <dt>{{jsxref("Global_Objects/EvalError", "EvalError")}}</dt> + <dd>Crea una instància que representa un error que succeeix a l'emprar la funció global {{jsxref("Global_Objects/eval", "eval()")}}.</dd> + <dt>{{jsxref("Global_Objects/InternalError", "InternalError")}} {{non-standard_inline}}</dt> + <dd>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".</dd> + <dt>{{jsxref("Global_Objects/RangeError", "RangeError")}}</dt> + <dd>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.</dd> + <dt>{{jsxref("Global_Objects/ReferenceError", "ReferenceError")}}</dt> + <dd>Crea una instància que representa un error que succeeix quan es deixa de referenciar una referència invàlida.</dd> + <dt>{{jsxref("Global_Objects/SyntaxError", "SyntaxError")}}</dt> + <dd>Crea una instància que representa un error de sintaxi que succeeix a l'interpretar codi dins {{jsxref("Global_Objects/eval", "eval()")}}.</dd> + <dt>{{jsxref("Global_Objects/TypeError", "TypeError")}}</dt> + <dd>Crea una instància que representa un error que succeeix quan una variable o paràmetre és d'un tipus no vàlid.</dd> + <dt>{{jsxref("Global_Objects/URIError", "URIError")}}</dt> + <dd>Crea un error que representa un error que succeeix quan {{jsxref("Global_Objects/encodeURI", "encodeURI()")}} o {{jsxref("Global_Objects/decodeURI", "decodeURl()")}} reben paràmetres invàlids.</dd> +</dl> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<dl> + <dt>{{jsxref("Error.prototype")}}</dt> + <dd>Permet afegir propietats a instàncies <code>Error</code>.</dd> +</dl> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<p>L'objecte global Error no contè mètodes propis. Tot i així, hereta alguns mètodes a través de la cadena de prototipus.</p> + +<h2 id="Error_instances" name="Error_instances"><code>Instàncies Error</code></h2> + +<div>{{page('ca/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Descripció')}}</div> + +<h3 id="Propietats">Propietats</h3> + +<div>{{page('ca/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Propietats')}}</div> + +<h3 id="Mètodes">Mètodes</h3> + +<div>{{page('ca/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Mètodes')}}</div> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Throwing_a_generic_error" name="Example:_Throwing_a_generic_error">Exemple: Llençar un error genèric</h3> + +<p>Normalment 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")}}:</p> + +<pre class="brush: js">try { + throw new Error('Oooops!'); +} catch (e) { + alert(e.name + ': ' + e.message); +} +</pre> + +<h3 id="Example:_Handling_a_specific_error" name="Example:_Handling_a_specific_error">Exemple: Manegar un error específic</h3> + +<p><span class="comment">this should probably be removed</span>Es 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")}}:</p> + +<pre class="brush: js">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 +} +</pre> + +<h3 id="Exemple_Tipus_d'errors_personalitzats">Exemple: Tipus d'errors personalitzats</h3> + +<p>És possible definir tipus d'errors propis derivats de Error, llençar-los mitjançant <code>throw new MyError()</code> i utilitzar <code>instanceof MyError</code> per a comprovarel tipus d'error al manegador d'excepcions. A sota trobareu la forma més comuna de fer això.</p> + +<div class="warning"> +<p>Advertim que la instància <code>MyError</code> llençada reportarà <code>lineNumber</code> i <code>fileName</code> invàlids, com a mínim a Firefox.</p> +</div> + +<p>Vegeu també <a href="http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript">la discussió a StackOverflow "Quina és una bona forma d'extrendre Error a JavaScript?"</a>.</p> + +<pre class="brush: js">// 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' +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.11', 'Error')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-error-objects', 'Error')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype")}}</li> + <li>{{jsxref("Statements/throw", "throw")}}</li> + <li>{{jsxref("Statements/try...catch", "try...catch")}}</li> +</ul> |