JavaScript throw Error(‘msg’) 和 throw new Error(‘msg’) 的区别

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 Error('msg') 和 throw new Error('msg') 的区别

Javascript

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

输出:

JavaScript throw Error('msg') 和 throw new Error('msg') 的区别

在上面的代码中,我添加了一个带有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)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程