Baixe o app para aproveitar ainda mais
Prévia do material em texto
Error 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 Opcional. Descrição do erro legível para humanos. 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() . 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 This page was translated from English by the community. Learn more and join the MDN Web Docs community. message fileName lineNumber https://developer.mozilla.org/en-US/docs/MDN/Community/Contributing/Translated_content#active_locales https://developer.mozilla.org/en-US/docs/MDN/Community/Contributing/Translated_content#active_locales https://developer.mozilla.org/pt-BR/ 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 (en-US). 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 Exceções na captura de Instruções (en- US). EvalError Cria uma instância representando um erro que ocorre na função global. eval() . InternalError Cria uma instância representando um erro que ocorre quando um erro interno na engine do JavaScript é lançado. Ex: "too much recursion". RangeError (en-US) 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 (en-US) 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. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#exception_handling_statements https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#exception_handling_statements https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/EvalError https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/eval https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/InternalError https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/eval https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/TypeError URIError (en-US) Cria uma instância representando um erro que ocorre quando são passados parâmetros inválidos para encodeURI() ou decodeURI() . Propriedades Error.prototype (en-US) 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 throw . Você pode capturar o erro usando uma construção de try...catch : JS try { throw new Error("Oooops!"); } catch (e) { https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/encodeURI https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/decodeURI https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/throw https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/try...catch 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 : 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 Veja também "esta discussão no Stackoverflow (em inglês): What's a good way to extend Error in JavaScript?" . alert(e.name + ": " + e.message); } 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 } Aviso: Note que as instâncias MeuErro lançadas vão reportar valores de lineNumber e fileName incorretos, ao menos no Firefox. 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; https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Operators/instanceof https://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript https://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript https://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript Especificações Specification ECMAScript Language Specification # sec-error-objects Compatibilidade com navegadores Report problems with this compatibility data on GitHub } 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' } https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-error-objects https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-error-objects https://github.com/mdn/browser-compat-data/issues/new?mdn-url=https%3A%2F%2Fdeveloper.mozilla.org%2Fpt-BR%2Fdocs%2FWeb%2FJavaScript%2FReference%2FGlobal_Objects%2FError&metadata=%3C%21--+Do+not+make+changes+below+this+line+--%3E%0A%3Cdetails%3E%0A%3Csummary%3EMDN+page+report+details%3C%2Fsummary%3E%0A%0A*+Query%3A+%60javascript.builtins.Error%60%0A*+Report+started%3A+2024-03-13T18%3A51%3A34.686Z%0A%0A%3C%2Fdetails%3E&title=javascript.builtins.Error+-+%3CSUMMARIZE+THE+PROBLEM%3E&template=data-problem.yml https://github.com/mdn/browser-compat-data/issues/new?mdn-url=https%3A%2F%2Fdeveloper.mozilla.org%2Fpt-BR%2Fdocs%2FWeb%2FJavaScript%2FReference%2FGlobal_Objects%2FError&metadata=%3C%21--+Do+not+make+changes+below+this+line+--%3E%0A%3Cdetails%3E%0A%3Csummary%3EMDN+page+report+details%3C%2Fsummary%3E%0A%0A*+Query%3A+%60javascript.builtins.Error%60%0A*+Report+started%3A+2024-03-13T18%3A51%3A34.686Z%0A%0A%3C%2Fdetails%3E&title=javascript.builtins.Error+-+%3CSUMMARIZE+THE+PROBLEM%3E&template=data-problem.ymlError Chrome 1 Edge 12 Firefox 1 Opera 4 Error() constructor Chrome 1 Edge 12 Firefox 1 Opera 4 fileName parameter Chrome No Edge No Firefox 1 Opera No lineNumber parameter Chrome No Edge No Firefox 1 Opera No options.cause parameter Chrome 93 Edge 93 Firefox 91 Opera 79 cause Chrome 93 Edge 93 Firefox 91 Opera 79 Cause is displayed in console Chrome No Edge No Firefox 91 Opera No columnNumber Chrome No Edge No Firefox 1 Opera No fileName Chrome No Edge No Firefox 1 Opera No lineNumber Chrome No Edge No Firefox 1 Opera No C h ro m e E d g e Fi re fo x O p er a https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Error/Error https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Error/columnNumber https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Error/fileName https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Error/lineNumber message Chrome 1 Edge 12 Firefox 1 Opera 5 name Chrome 1 Edge 12 Firefox 1 Opera 4 Error is serializable Chrome 77 Edge 79 Firefox 103 Opera 64 stack Chrome 3 Edge 12 Firefox 1 Opera 10.5 toString Chrome 1 Edge 12 Firefox 1 Opera 4 Tip: you can click/tap on a cell for more information. Full support No support Non-standard. Check cross-browser support before using. See implementation notes. Veja também Error.prototype (en-US) throw try...catch Help improve MDN Was this page helpful to you? C h ro m e E d g e Fi re fo x O p er a Yes No https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Error/message https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Error/name https://developer.mozilla.org/pt-BR/docs/Glossary/Serializable_object https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Error/stack https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Error/toString https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/throw https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/try...catch Learn how to contribute. This page was last modified on 8 de nov. de 2023 by MDN contributors. https://github.com/mdn/content/blob/main/CONTRIBUTING.md https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Error/contributors.txt
Compartilhar