Javascript:显式抛出错误对象与否之间的区别

时间:2011-04-17 06:46:51

标签: javascript error-handling throw

在javascript中,我注意到两种抛出错误的方法:

1)

throw "An error";

2)

throw new Error('An object error')

选择单向另一种方式有什么好处吗? 人们认为这是一种更好的做法吗?

由于

2 个答案:

答案 0 :(得分:3)

基本上,当您使用方法一时,JavaScript会隐式抛出一个带有“错误”的Error对象作为消息。除非您需要抛出不同类型的异常(例如,具有解释错误的不同属性的异常),否则一个方法就可以了。

但是,如果您计划将来抛出更复杂的异常,则需要使用方法2,因为您需要定义要抛出的对象。

基本上,为此目的,两者都是等价的。我会选择方法2,因为它会让你在正确的思维方式中走上正轨;)

答案 1 :(得分:1)

Error对象有nice little extras,如error.name和(在Firefox中)error.stack

如果您需要,请明确抛出错误。但是,大多数人只使用error.toString()方法(通常隐式调用)。在后一种情况下,首先创建一个Error对象是过分的,所以抛出一个字符串也是一样的。