gpt4 book ai didi

javascript - `throw ' foo '`, ` throw Error ('foo' )`, ` throw new Error ('foo' )` 有什么区别?

转载 作者:行者123 更新时间:2023-11-29 17:48:39 35 4
gpt4 key购买 nike

我见过在 JavaScript 中抛出错误的 3 种不同方式:

throw 'message';
throw Error('message');
throw new Error('message');

它们有什么区别?

注意:我知道类似的问题(123 等)。它们都没有涵盖所有三种情况。

最佳答案

throw 是一个 expression这会停止函数并生成一个 exception .直接跟在 throw 之后的任何内容都会在异常中传递。将其视为具有语法糖的函数,因此您无需编写 throw('message'),而是编写 throw 'message'throw new Error('message')throw 'message' 类似,只是传递的是对象而不是字符串文字。

There is no differencethrow Error('message')throw new Error('message') 之间:许多核心 JavaScript 对象允许在没有 new 构造函数和 Error 恰好是其中之一。

也就是说,您应该始终使用throw new Error('message')Error 对象包含堆栈跟踪和其他有用的调试信息,这些信息在您使用字符串文字时会丢失。使用 ES6 类创建对象需要使用 newextending Error via a class是保留堆栈跟踪的唯一方法。创建自定义错误类使错误处理更加统一。

另请参阅:extremely elaborate illustration .

关于javascript - `throw ' foo '`, ` throw Error ('foo' )`, ` throw new Error ('foo' )` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46295340/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com