我想编写一个通用的错误处理器,它可以捕获代码的任何实例中故意抛出的自定义错误。
当我像以下代码中那样执行throw new Error('sample')
try {
throw new Error({'hehe':'haha'});
// throw new Error('hehe');
} catch(e) {
alert(e);
console.log(e);
}
在 Firefox 中,日志显示为Error: [object Object]
,我无法解析这个对象。
对于第二个throw
,日志显示为:Error: hehe
然而当我执行以下操作时
try {
throw ({'hehe':'haha'});
} catch(e) {
alert(e);
console.log(e);
}
控制台显示为:Object { hehe="haha"}
,我能够访问错误属性。
有什么区别吗?
这个区别就像在代码中看到的一样吗?像字符串将只被传递为字符串,对象作为对象,但语法会有所不同?
我还没有探索过抛出错误对象...我只抛出了字符串。
除了上述两种方法之外,还有其他方法吗?
Error
- Bergi