JavaScript中throw Error(‘msg’)和throw new Error(‘msg’)的区别
throw语句允许您创建异常或自定义错误。异常可以是Javascript字符串、数字、布尔值或对象。因此,如果您将此语句与try…catch语句一起使用。它允许您控制程序的流程,并生成准确的错误消息。例如: throw “too small” (throw a text), throw 500 (throw a number),等等。
首先,throw Error()和throw new Error()在功能上是等价的。
语法:
Error object: 生成一个包含错误信息的对象,并将其作为参数传递给catch。错误对象有三个属性:name, message 和 stack。
Error() 构造函数用于创建一个新的错误对象。
示例: 为了更好地理解,我们将举一个例子:
输出:
以上代码的输出(Error)
在上面的代码中,我添加了一个带有throw Error()的try…catch语句。这段代码将在try块中抛出’ msg ‘错误,catch语句将执行try块。
new Error 对象: 它捕获错误发生位置的几个属性。它公开一个带有两个参数name和message的错误事件。它还终止进一步的执行。
示例: 为了更好地理解,我们将举一个例子:
输出 :
以上代码的输出(new Error)
在上面的代码中,我添加了一个try…catch语句,并带有throw new Error()。这段代码将在try块中抛出’ msg ‘错误,catch语句将执行try块。
正如您在两个控制台的图像中所看到的,抛出一个错误(‘ msg ‘)和抛出一个新的错误(‘ msg ‘)将给出相同的结果。
注意: Error()和new Error()返回一个对象作为结果.
throw Error()和throw new Error()的区别:
throw Error() | throw new Error() |
---|---|
Error(…) 的可靠性和一致性较差。 | new Error(…)更加可靠和一致。 |
Error对象包含堆栈跟踪和其他有用的调试信息,这些信息在使用字符串文字时会丢失。 | 使用ES6类创建对象需要使用new,而通过类扩展Error是保留堆栈跟踪的唯一方法。 |
我们可以使用创建异常或自定义错误 throw Error() | The new Error() 方法是Node模块的内置应用程序编程接口 |
throw Error() 就像一个Javascript字符串、一个数字、一个布尔值或一个对象。 | 它返回作为参数传递的消息值中定义的特定错误。 |
我们可以控制程序的流程和生成准确的错误消息使用 throw Error() | 它创建一个新的Error对象并设置 error.message 属性设置为所提供的文本消息。 |
throw语句抛出一个异常。 | 它的语法是-: new Error(message) |