erros são lançados pelo motor, e exceções são lançadas pelo desenvolvedor. Mas o que significa isso exactamente? Em JavaScript, todas as exceções são simplesmente objetos. Enquanto a maioria das exceções são implementações da classe de erro global, qualquer objeto antigo pode ser jogado. Com isso em mente, há duas maneiras de lançar uma exceção: diretamente através de um objeto de erro, e através de um objeto personalizado.,
exceções genéricas
enquanto a classe de erro incorporada é bastante bem definida-incluindo coisas como o nome do arquivo, Número de linha e traço de pilha para nomear alguns—quando se trata disso, a coisa mais importante a ter em conta é a mensagem. O primeiro—e muitas vezes único-parâmetro a ser passado durante a instanciação de erro, a mensagem é um erro legível pelo homem que muitas vezes pode ser relacionado diretamente com o usuário final. Lançar uma exceção genérica é quase tão simples quanto parece., Tudo o que é preciso é instanciar um objeto de exceção—com o primeiro parâmetro do construtor de erro sendo a mensagem de erro—e então… “atirá-lo”.
throw new Error('Exception message');
erro.código vs. erro.mensagem
é importante notar aqui que, enquanto a mensagem de erro é os dados de erro legível, nó.js também fornece um código de erro que identifica o tipo de erro que está sendo jogado. Este valor é útil, pois permite que você se adapte programaticamente a erros que podem ser lançados, independentemente da mensagem contida no erro.,
enquanto os códigos de erro são geralmente usados para erros de sistema, ao criar erros personalizados, estendendo a classe de erro (veja exceções personalizadas abaixo para mais detalhes), um código personalizado pode ser definido e usado para definições de erro mais estruturadas.
exceções personalizadas
embora seja possível lançar qualquer objeto, a melhor prática é estender o objeto de erro com uma nova classe. Em ambientes que o suportam, isso permite que recursos como o traço automático da pilha sejam incluídos na resposta de exceção, o que pode ser crucial quando se trata de diagnosticar problemas mais tarde ao longo da linha.,
Com uma exceção personalizada objeto criado, tudo o que temos a fazer é jogá-lo como qualquer outro erro:
throw new CustomException('Exception message');
Outra grande vantagem para alargar o objecto de Erro, ao invés de jogar um erro genérico, é que os metadados adicionais podem ser incluídos com o erro e recuperado posteriormente. Isso pode ser incrivelmente valioso em depurar e relatar erros, como às vezes uma mensagem de texto simples simplesmente não é suficiente. Por exemplo, você pode incluir os valores das variáveis locais ou estado que podem ajudá-lo a depurar o problema.,
function CustomException(message, metadata) { const error = new Error(message); error.metadata = metadata; return error;}
fora dos dados incluídos no objeto de erro, ao usar o notificador de Rollbar para dados adicionais JavaScript também é incluído no relatório. Isto inclui informação contextual como o navegador e o usuário.
// Caught errorstry { doSomething();} catch (e) { Rollbar.error("Something went wrong", e);}
escrevendo para a consola
em JavaScript, a consola é onde todos os logs podem ser encontrados (mais sobre isso Onde estão os erros de JavaScript registrados?). Felizmente, escrever dados para o console é incrivelmente simples. Para conseguir isso, basta chamar o console.,método log (), com a mensagem que você gostaria de escrever para o log.
console.log("Top level");
Leave a Reply