Quero escrever um manipulador de erro comum que capture erros personalizados lançados de propósito em qualquer instância do código.
Quando eu throw new Error('sample')
gostei no código a seguir
try {
throw new Error({'hehe':'haha'});
// throw new Error('hehe');
} catch(e) {
alert(e);
console.log(e);
}
O log é exibido no Firefox Error: [object Object]
e eu não consegui analisar o objeto.
Por um segundo, throw
o log mostra como:Error: hehe
Considerando que quando eu fiz
try {
throw ({'hehe':'haha'});
} catch(e) {
alert(e);
console.log(e);
}
o console mostrou como: Object { hehe="haha"}
no qual eu consegui acessar as propriedades do erro.
Qual é a diferença?
A diferença é vista no código? Como string será apenas passada como string e objeto como objetos, mas a sintaxe será diferente?
Eu não explorei o lançamento do objeto de erro ... eu havia feito apenas o lançamento de strings.
Existe outra maneira além dos dois métodos mencionados acima?
Error
s