最佳答案
我想编写一个通用的错误处理程序,它将捕获在代码的任何实例中故意抛出的自定义错误。
当我做throw new Error('sample')
像在下面的代码
try {
throw new Error({'hehe':'haha'});
// throw new Error('hehe');
} catch(e) {
alert(e);
console.log(e);
}
Log在Firefox中显示为Error: [object Object]
,我无法解析对象。
对于第二个throw
日志显示为:Error: hehe
然而当我这样做的时候
try {
throw ({'hehe':'haha'});
} catch(e) {
alert(e);
console.log(e);
}
控制台显示为:Object { hehe="haha"}
,其中我能够访问错误属性。
有什么不同?
区别是否如代码中所示?比如字符串会作为字符串传递而对象作为对象但语法会有所不同?
我还没有探索过抛出错误对象…我只抛出了字符串。
除了以上两种方法,还有别的办法吗?