JavaScript throw Error(‘msg’) 和 throw new Error(‘msg’) 的区别
throw语句允许你创建一个异常或自定义错误。异常可以是像Javascript字符串、数字、布尔值或对象这样的类型。因此,如果你将这个语句与try…catch语句一起使用,它可以让你控制程序的流程并生成准确的错误消息。例如:throw “too small”(抛出一个文本),throw 500(抛出一个数字),等等。
首先,throw Error()和throw new Error()在功能上是等效的。
语法:
throw Error("Enter your error message here");
错误对象: 生成并作为参数传递给catch的包含错误信息的对象。错误对象有三个属性:name、message和stack。
Error() 构造函数用于创建一个新的错误对象。
示例: 为了更好地理解,我们将举一个示例:
JavaScript
// throw Error()
try {
throw Error("msg");
} catch (e) {
console.log("for Error()");
console.log(e);
}
输出:

Javascript
// throw new Error()
try {
throw new Error("msg");
} catch (e) {
console.log("for new Error()");
console.log(e);
}
输出:

在上面的代码中,我添加了一个带有throw new Error()语句的try…catch语句。这段代码将会在try块中抛出’msg’错误,然后被catch语句执行。
从两个控制台的图像中可以看到,throw an error(‘msg’)和throw a new error(‘msg’)产生了相同的结果。
注意: Error()和new Error()都会返回一个对象作为结果。
throw Error()和throw new Error()之间的区别:
| 抛出错误() | 抛出新错误() |
|---|---|
| Error(…) 不够可靠和一致。 | new Error(…) 更可靠和一致。 |
| Error对象包含堆栈追踪和其他有用的调试信息,当你使用字符串字面量时,这些信息会丢失。 | 使用ES6类创建对象需要使用new,并且通过类继承Error是保留堆栈追踪的唯一方法。 |
| 我们可以使用 抛出错误() 来创建异常或自定义错误。 | new Error() 方法是 Node 模块内置的应用程序编程接口。 |
| 抛出错误() 就像 JavaScript 的字符串、数字、布尔或对象一样。 | 它根据传递的消息值返回特定的错误。 |
| 我们可以使用 抛出错误() 来控制程序的流程并生成准确的错误消息。 | 它创建一个新的Error对象,并将 error.message 属性设置为提供的文本消息。 |
| throw 语句抛出异常。 | 它的语法是-: new Error(message) |
极客教程