From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../reference/global_objects/error/index.html | 229 +++++++++++++++++++++ .../global_objects/error/tosource/index.html | 58 ++++++ .../global_objects/error/tostring/index.html | 100 +++++++++ 3 files changed, 387 insertions(+) create mode 100644 files/pt-br/web/javascript/reference/global_objects/error/index.html create mode 100644 files/pt-br/web/javascript/reference/global_objects/error/tosource/index.html create mode 100644 files/pt-br/web/javascript/reference/global_objects/error/tostring/index.html (limited to 'files/pt-br/web/javascript/reference/global_objects/error') 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 +--- +
{{JSRef}}
+ +

O construtor de Error cria um objeto de erro. Instâncias de objetos Error são lançadas quando erros de tempo de execução ocorrem. O objeto Error também pode ser usado como objeto base para exceções definidas pelo usuário. Veja abaixo tipos de erro padrões embutidos.

+ +

Sintaxe

+ +
new Error([message[, fileName[, lineNumber]]])
+ +

Parâmetros

+ +
+
message
+
Opcional. Descrição do erro legível para humanos.
+
fileName {{non-standard_inline}}
+
Opcional. O valor da propriedade fileName  no objeto de erro criado. O padrão é o nome do arquivo contendo o código que chamou o construtor de Error().
+
lineNumber {{non-standard_inline}}
+
Opcional. O valor da propriedade lineNumber no objeto de Error criado. O padrão é o número da linha contendo a invocação do construtor Error().
+
+ +

Descrição

+ +

Erros em tempo de execução resultam em novos objetos Error sendo criados e lançados.

+ +

Esta página documenta o uso do objeto Error em si e seu uso como uma função construtora. Para uma lista de propriedades e métodos herdados por instâncias de Error, veja {{jsxref("Error.prototype")}}.

+ +

Tipos de erro

+ +

Além do construtor genérico de Error, existem outros seis construtores principais de erro  no JavaScript. Para exceções em client-side, veja Excessões na captura de Instruções.

+ +
+
{{jsxref("EvalError")}}
+
Cria uma instância representando um erro que ocorre na função global. {{jsxref("Global_Objects/eval", "eval()")}}.
+
{{jsxref("InternalError")}} {{non-standard_inline}}
+
Cria uma instância representando um erro que ocorre quando um erro interno na engine do JavaScript é lançado. Ex: "too much recursion".
+
{{jsxref("RangeError")}}
+
Cria uma instância representando um erro que ocorre quando um valor ou parâmetro numérico está fora de seus limites válidos.
+
{{jsxref("ReferenceError")}}
+
Cria uma instância representando um erro que ocorre ao de-referenciar uma referência inválida.
+
{{jsxref("SyntaxError")}}
+
Cria uma instância representando um erro que ocorre ao fazer o parse do código em {{jsxref("Global_Objects/eval", "eval()")}}.
+
{{jsxref("TypeError")}}
+
Cria uma instância representando um erro que ocorre quando uma variável ou parâmetro não é de um tipo válido.
+
{{jsxref("URIError")}}
+
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()")}}.
+
+ +

Propriedades

+ +
+
{{jsxref("Error.prototype")}}
+
Permite a criação de propriedades para instâncias de Error.
+
+ +

Métodos

+ +

O objeto Error global não contém métodos próprios, entretanto, ele herda alguns métodos através da cadeia de prototypes.

+ +

Instâncias de Error

+ +
{{page('pt-BR/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Description')}}
+ +

Propriedades

+ +
{{page('pt-BR/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Properties')}}
+ +

Métodos

+ +
{{page('pt-BR/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Methods')}}
+ +

Exemplos

+ +

Lançando um erro genérico

+ +

Geralmente você cria um objeto Error 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")}}:

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

Capturando um erro específico

+ +

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 engines de JavaScript modernas, a palavra-chave {{jsxref("Operators/instanceof", "instanceof")}}:

+ +
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
+}
+
+ +

Tipos de erro customizados

+ +

Você pode escolher definir seus próprios tipos de erro derivando de Error para conseguir usar throw new MeuErro() e usar instanceof MeuErro para checar o tipo de erro na captura da exceção. A forma comum para isso está demonstrada abaixo

+ +
+

Note que as instâncias MeuErro lançadas vão reportar valores de lineNumberfileName incorretos, ao menos no Firefox.

+
+ +

Veja também "esta discussão no Stackoverflow (em inglês): What's a good way to extend Error in JavaScript?".

+ +
// 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'
+}
+ +

Especificações

+ + + + + + + + + + + + + + + + + + + + + + + + +
EspecificaçãoStatusComentário
{{SpecName('ES1')}}{{Spec2('ES1')}}Definição inicial. Implementada no JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.11', 'Error')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error-objects', 'Error')}}{{Spec2('ES6')}} 
+ +

Compatibilidade de browser

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
RecursoChromeFirefox (Gecko)Internet ExplorerOperaSafari
Suporte básico{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
RecursoAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Suporte básico{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

Veja também

+ + diff --git a/files/pt-br/web/javascript/reference/global_objects/error/tosource/index.html b/files/pt-br/web/javascript/reference/global_objects/error/tosource/index.html new file mode 100644 index 0000000000..2a6ed43803 --- /dev/null +++ b/files/pt-br/web/javascript/reference/global_objects/error/tosource/index.html @@ -0,0 +1,58 @@ +--- +title: Error.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Error/toSource +tags: + - JavaScript + - Não padronizado + - Prototipo + - metodo +translation_of: Web/JavaScript/Reference/Global_Objects/Error/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

O método toSource() retorna código que pode resultar no mesmo erro.

+ +

Sintaxe

+ +
e.toSource()
+ +

Valor de retorno

+ +

Uma string contendo o código fonte do erro.

+ +

Exemplos

+ +

Usando toSource

+ +

Chamando método toSource de uma instância {{jsxref("Error")}} (incluindo NativeErrors) irá retornar uma string contendo o código fonte do erro. Essa string pode ser avaliada para criar (aproximadamente) um objeto igual. Naturalmente, a string contendo o fonte segue a estrutura do construtor {{jsxref("Error")}}. Por exemplo:

+ +
(newname(message ,fileName,lineNumber))
+
+ +

onde estes atributos correspondem as respectivas propriedades da instância do erro.

+ +
+

Nota: Fique alerta que as propriedades usadas pelo método toSource na criação da string são mutáveis e podem não refletir precisamente a função utilizada para criar a instância do erro ou nome de arquivo ou número de linha onde o erro atual ocorreu.

+
+ +

Especificações

+ +

Não faz parte de nenhum padrão.

+ +

Compatibilidade de navegador

+ +
+ + +

{{Compat("javascript.builtins.Error.toSource")}}

+
+ +

Veja também

+ + diff --git a/files/pt-br/web/javascript/reference/global_objects/error/tostring/index.html b/files/pt-br/web/javascript/reference/global_objects/error/tostring/index.html new file mode 100644 index 0000000000..80aba76e10 --- /dev/null +++ b/files/pt-br/web/javascript/reference/global_objects/error/tostring/index.html @@ -0,0 +1,100 @@ +--- +title: Error.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/Error/toString +tags: + - JavaScript + - Method + - Prototipo + - Prototype + - metodo +translation_of: Web/JavaScript/Reference/Global_Objects/Error/toString +--- +
{{JSRef}}
+ +

O método toString() retorna uma string representando o objeto {{jsxref("Error")}}.

+ +

Sintaxe

+ +
e.toString()
+ +

Valor de retorno

+ +

A string representando o objeto {{jsxref("Error")}} especificado.

+ +

Descrição

+ +

O objeto {{jsxref("Error")}} sobrescreve o método {{jsxref("Object.prototype.toString()")}} herdado por todos os objetos. Sua semântica é a seguinte (assumindo que {{jsxref("Object")}} e {{jsxref("String")}} tem seus valores originais):

+ +
Error.prototype.toString = function() {
+  'use strict';
+
+  var obj = Object(this);
+  if (obj !== this) {
+    throw new TypeError();
+  }
+
+  var name = this.name;
+  name = (name === undefined) ? 'Error' : String(name);
+
+  var msg = this.message;
+  msg = (msg === undefined) ? '' : String(msg);
+
+  if (name === '') {
+    return msg;
+  }
+  if (msg === '') {
+    return name;
+  }
+
+  return name + ': ' + msg;
+};
+
+ +

Exemplos

+ +

Usando toString()

+ +
var e = new Error('fatal error');
+console.log(e.toString()); // 'Error: fatal error'
+
+e.name = undefined;
+console.log(e.toString()); // 'Error: fatal error'
+
+e.name = '';
+console.log(e.toString()); // 'fatal error'
+
+e.message = undefined;
+console.log(e.toString()); // ''
+
+e.name = 'hello';
+console.log(e.toString()); // 'hello'
+
+ +

Especificações

+ + + + + + + + + + + + +
Especificação
{{SpecName('ESDraft', '#sec-error.prototype.tostring', 'Error.prototype.toString')}}
+ +

Compatibilidade de navegador

+ +
+ + +

{{Compat("javascript.builtins.Error.toString")}}

+
+ +

Veja também

+ + -- cgit v1.2.3-54-g00ecf