1

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

1)

throw "An error";

2)

throw new Error('An object error')

选择一种方式比另一种方式有什么优势吗?被认为是一种更好的做法吗?

谢谢

4

2 回答 2

3

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

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

基本上,为此目的,两者都是等价的。我会选择方法 2,因为它会让你在路上保持正确的心态;)

于 2011-04-17T06:50:45.867 回答
1

一个Error对象有一些不错的附加功能,比如error.nameand (in Firefox) error.stack

如果您需要这些,请明确抛出错误。然而,大多数人只是使用error.toString()方法(通常被隐式调用)。在后一种情况下,首先创建一个 Error 对象是多余的,因此抛出一个字符串也可以。

于 2011-04-17T07:36:04.083 回答