diff options
| author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
|---|---|---|
| committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
| commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
| tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/pt-br/web/javascript/reference/global_objects/error/index.html | |
| parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
| download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip | |
initial commit
Diffstat (limited to 'files/pt-br/web/javascript/reference/global_objects/error/index.html')
| -rw-r--r-- | files/pt-br/web/javascript/reference/global_objects/error/index.html | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/files/pt-br/web/javascript/reference/global_objects/error/index.html b/files/pt-br/web/javascript/reference/global_objects/error/index.html new file mode 100644 index 0000000000..41cc7e5bb8 --- /dev/null +++ b/files/pt-br/web/javascript/reference/global_objects/error/index.html @@ -0,0 +1,229 @@ +--- +title: Error +slug: Web/JavaScript/Reference/Global_Objects/Error +tags: + - Custom Error + - Erro + - Error + - JavaScript + - Reference + - Referencia +translation_of: Web/JavaScript/Reference/Global_Objects/Error +--- +<div>{{JSRef}}</div> + +<p>O construtor de <strong><code>Error</code></strong> cria um objeto de erro. Instâncias de objetos <code>Error</code> são lançadas quando erros de tempo de execução ocorrem. O objeto <code>Error</code> também pode ser usado como objeto base para exceções definidas pelo usuário. Veja abaixo tipos de erro padrões embutidos.</p> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">new Error([<var>message</var>[, <var>fileName</var>[, <var>lineNumber</var>]]])</pre> + +<h3 id="Parâmetros">Parâmetros</h3> + +<dl> + <dt><code>message</code></dt> + <dd>Opcional. Descrição do erro legível para humanos.</dd> + <dt><code>fileName</code> {{non-standard_inline}}</dt> + <dd>Opcional. O valor da propriedade <code>fileName</code> no objeto de erro criado. O padrão é o nome do arquivo contendo o código que chamou o construtor de <code>Error()</code>.</dd> + <dt><code>lineNumber</code> {{non-standard_inline}}</dt> + <dd>Opcional. O valor da propriedade <code>lineNumber</code> no objeto de <code>Error</code> criado. O padrão é o número da linha contendo a invocação do construtor <code>Error()</code>.</dd> +</dl> + +<h2 id="Descrição">Descrição</h2> + +<p>Erros em tempo de execução resultam em novos objetos <code>Error</code> sendo criados e lançados.</p> + +<p>Esta página documenta o uso do objeto <code>Error</code> em si e seu uso como uma função construtora. Para uma lista de propriedades e métodos herdados por instâncias de <code>Error</code>, veja {{jsxref("Error.prototype")}}.</p> + +<h3 id="Tipos_de_erro">Tipos de erro</h3> + +<p>Além do construtor genérico de <code>Error</code>, existem outros seis construtores principais de erro no JavaScript. Para exceções em <em>client-side</em>, veja <a href="/en-US/docs/Web/JavaScript/Guide/Statements#Exception_Handling_Statements">Excessões na captura de Instruções</a>.</p> + +<dl> + <dt>{{jsxref("EvalError")}}</dt> + <dd>Cria uma instância representando um erro que ocorre na função global. {{jsxref("Global_Objects/eval", "eval()")}}.</dd> + <dt>{{jsxref("InternalError")}} {{non-standard_inline}}</dt> + <dd>Cria uma instância representando um erro que ocorre quando um erro interno na <em>engine</em> do JavaScript é lançado. Ex: "too much recursion".</dd> + <dt>{{jsxref("RangeError")}}</dt> + <dd>Cria uma instância representando um erro que ocorre quando um valor ou parâmetro numérico está fora de seus limites válidos.</dd> + <dt>{{jsxref("ReferenceError")}}</dt> + <dd>Cria uma instância representando um erro que ocorre ao de-referenciar uma referência inválida.</dd> + <dt>{{jsxref("SyntaxError")}}</dt> + <dd>Cria uma instância representando um erro que ocorre ao fazer o <em>parse</em> do código em {{jsxref("Global_Objects/eval", "eval()")}}.</dd> + <dt>{{jsxref("TypeError")}}</dt> + <dd>Cria uma instância representando um erro que ocorre quando uma variável ou parâmetro não é de um tipo válido.</dd> + <dt>{{jsxref("URIError")}}</dt> + <dd>Cria uma instância representando um erro que ocorre quando são passados parâmetros inválidos para {{jsxref("Global_Objects/encodeURI", "encodeURI()")}} ou {{jsxref("Global_Objects/decodeURI", "decodeURI()")}}.</dd> +</dl> + +<h2 id="Propriedades">Propriedades</h2> + +<dl> + <dt>{{jsxref("Error.prototype")}}</dt> + <dd>Permite a criação de propriedades para instâncias de <code>Error</code>.</dd> +</dl> + +<h2 id="Métodos">Métodos</h2> + +<p>O objeto <code>Error</code> global não contém métodos próprios, entretanto, ele herda alguns métodos através da cadeia de <em>prototypes</em>.</p> + +<h2 id="Instâncias_de_Error"><code>Instâncias de Error</code></h2> + +<div>{{page('pt-BR/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Description')}}</div> + +<h3 id="Propriedades_2">Propriedades</h3> + +<div>{{page('pt-BR/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Properties')}}</div> + +<h3 id="Métodos_2">Métodos</h3> + +<div>{{page('pt-BR/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Methods')}}</div> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Lançando_um_erro_genérico">Lançando um erro genérico</h3> + +<p>Geralmente você cria um objeto <code>Error</code> com a intenção de lançá-lo usando a palavra-chave {{jsxref("Statements/throw", "throw")}}. Você pode capturar o erro usando uma construção de {{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="Capturando_um_erro_específico">Capturando um erro específico</h3> + +<p>Você pode escolher por capturar apenas tipos de erro específicos testando o tipo do erro com a propriedade {{jsxref("Object.prototype.constructor", "constructor")}} de erro ou, se você está escrevendo para <em>engines</em> de JavaScript modernas, a palavra-chave {{jsxref("Operators/instanceof", "instanceof")}}:</p> + +<pre class="brush: js">try { + Objeto.Metodo(); +} 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="Tipos_de_erro_customizados">Tipos de erro customizados</h3> + +<p>Você pode escolher definir seus próprios tipos de erro derivando de <code>Error</code> para conseguir usar <code>throw new MeuErro()</code> e usar <code>instanceof MeuErro </code>para checar o tipo de erro na captura da exceção. A forma comum para isso está demonstrada abaixo</p> + +<div class="warning"> +<p>Note que as instâncias <code>MeuErro</code> lançadas vão reportar valores de <code>lineNumber</code> e <code>fileName</code> incorretos, ao menos no Firefox.</p> +</div> + +<p>Veja também <a href="http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript">"esta discussão no Stackoverflow (em inglês): What's a good way to extend Error in JavaScript?"</a>.</p> + +<pre class="brush: js">// Cria um novo objeto que herda o construtor de Error através do prototype. +function MeuErro(message) { + this.name = 'MeuErro'; + this.message = message || 'Mensagem de erro padrão'; + this.stack = (new Error()).stack; +} +MeuErro.prototype = Object.create(MeuErro.prototype); +MeuErro.prototype.constructor = MeuErro; + +try { + throw new MeuErro(); +} catch (e) { + console.log(e.name); // 'MeuErro' + console.log(e.message); // 'Mensagem de erro padrão' +} + +try { + throw new MeuErro('Mensagem customizada'); +} catch (e) { + console.log(e.name); // 'MeuErro' + console.log(e.message); // 'Mensagem customizada' +}</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definição inicial. Implementada no 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="Compatibilidade_de_browser">Compatibilidade de browser</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Recurso</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suporte básico</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>Recurso</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>Suporte básico</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="Veja_também">Veja também</h2> + +<ul> + <li>{{jsxref("Error.prototype")}}</li> + <li>{{jsxref("Statements/throw", "throw")}}</li> + <li>{{jsxref("Statements/try...catch", "try...catch")}}</li> +</ul> |
