【发布时间】:2011-08-07 05:09:11
【问题描述】:
在 javascript 中,我注意到了两种引发错误的方式:
1)
throw "An error";
2)
throw new Error('An object error')
选择一种方式比另一种方式有什么优势吗? 是否被认为是一种更好的做法?
谢谢
【问题讨论】:
标签: javascript error-handling throw
在 javascript 中,我注意到了两种引发错误的方式:
1)
throw "An error";
2)
throw new Error('An object error')
选择一种方式比另一种方式有什么优势吗? 是否被认为是一种更好的做法?
谢谢
【问题讨论】:
标签: javascript error-handling throw
基本上,当您使用方法一时,JavaScript 会隐式抛出一个带有“错误”的错误对象作为消息。除非您需要抛出不同类型的异常(例如,具有解释错误的不同属性的异常),否则方法一种就可以了。
但是,如果您计划在未来抛出更复杂的异常,则需要使用方法 2,因为您需要定义要抛出的对象。
基本上,为此,两者是等价的。我会选择方法 2,因为它会让你在路上保持正确的心态;)
【讨论】:
Error 对象具有 nice little extras,例如 error.name 和(在 Firefox 中)error.stack。
如果您需要这些,请明确抛出错误。然而,大多数人只使用error.toString() 方法(通常被隐式调用)。在后一种情况下,首先创建一个 Error 对象是多余的,所以抛出一个字符串也可以。
【讨论】: