📌  相关文章
📜  throw Error('msg') 和 throw new Error('msg') 的区别(1)

📅  最后修改于: 2023-12-03 14:47:58.397000             🧑  作者: Mango

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

在JavaScript中, throw 关键字用于在代码中手动抛出异常。但是,有两种常见方式可以创建错误对象:throw Error('msg')throw new Error('msg')。 这两个方式之间有什么区别?

throw Error('msg')

当运行 throw Error('msg') 时,会创建一个 Error 实例并将其抛出。由于这种方式不是使用 new 运算符调用构造函数,因此它不是完全有效的方式来创建 Error 对象并添加自定义属性。如果您尝试添加额外的属性,它们将被忽略。

throw Error('msg');
throw new Error('msg')

throw Error('msg') 不同,使用 new 运算符调用 Error 构造函数可以将自定义属性添加到错误对象。

throw new Error('msg');

在此示例中,可以在错误对象上添加其他属性或方法。例如:

throw new Error({
  message: 'msg',
  status: 404,
  response: 'not found',
  log: function() {
    console.log('Error logged');
  }
});
总结

使用 throw new Error('msg') 可以更轻松地创建自定义错误对象并添加额外的属性和方法。 而使用 throw Error('msg') 创建的错误对象基本上只是一个字符串消息,并没有其他额外的信息。

所以,我们建议使用 throw new Error('msg') 来创建自定义错误对象。

希望这篇文章能够帮助您了解 throw Error('msg')throw new Error('msg') 之间的差异。