Baseline Widely available *
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.
new Error([message[, fileName[, lineNumber]]])Parâmetros
message
Opcional. Descrição do erro legÃvel para humanos.
fileName
Não padrão
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
Não padrão
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()
.
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 Error.prototype
.
Além do construtor genérico de Error
, existem outros seis construtores principais de erro no JavaScript. Para exceções em client-side, veja Exceções na captura de Instruções.
EvalError
Cria uma instância representando um erro que ocorre na função global. eval()
.
InternalError
Não padrão
Cria uma instância representando um erro que ocorre quando um erro interno na engine do JavaScript é lançado. Ex: "too much recursion".
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.
ReferenceError
Cria uma instância representando um erro que ocorre ao de-referenciar uma referência inválida.
SyntaxError
Cria uma instância representando um erro que ocorre ao fazer o parse do código em eval()
.
TypeError
Cria uma instância representando um erro que ocorre quando uma variável ou parâmetro não é de um tipo válido.
URIError
Cria uma instância representando um erro que ocorre quando são passados parâmetros inválidos para encodeURI()
ou decodeURI()
.
Error.prototype
Permite a criação de propriedades para instâncias de Error
.
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
Propriedades Métodos Exemplos Lançando um erro genérico
Geralmente você cria um objeto Error
com a intenção de lançá-lo usando a palavra-chave throw
. Você pode capturar o erro usando uma construção de 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 constructor
de erro ou, se você está escrevendo para engines de JavaScript modernas, a palavra-chave 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
Aviso: Note que as instâncias MeuErro
lançadas vão reportar valores de lineNumber
e fileName
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 Compatibilidade com navegadores Veja também
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4