是否有一种特定的错误类型应该用来表示javascript中未满足的需求?

是否有一种特定的错误类型应该用来表示javascript中未满足的需求?,javascript,throw,Javascript,Throw,当创建一个将被其他人使用的模块时,是否有一个标准化的、特定的错误类型应该抛出以表示未满足的需求 我是一个函数。我需要x。x是未定义的,我对此感到不安。抛出什么?作为MDN示例,您可以定义一个新的异常类,然后抛出它 下面是一个例子。希望有帮助:) 作为MDN示例,您可以定义一个新的异常类,然后抛出它 下面是一个例子。希望有帮助:) 这真的取决于作为开发人员的您。您应该尝试通过使用try和抛出异常来使代码优雅地消亡。您可以使用console以不同的方式记录不同的消息,并且您可以让它说出您想要的内容

当创建一个将被其他人使用的模块时,是否有一个标准化的、特定的错误类型应该抛出以表示未满足的需求


我是一个函数。我需要x。x是未定义的,我对此感到不安。抛出什么?

作为MDN示例,您可以定义一个新的异常类,然后抛出它

下面是一个例子。希望有帮助:)


作为MDN示例,您可以定义一个新的异常类,然后抛出它

下面是一个例子。希望有帮助:)


这真的取决于作为开发人员的您。您应该尝试通过使用try和抛出异常来使代码优雅地消亡。您可以使用console以不同的方式记录不同的消息,并且您可以让它说出您想要的内容

这是一个很好的资源,用于突出显示控制台消息

关于缺少的参数,我会在

if (typeof name === "undefined") {
    // ...
}

这真的取决于你作为开发者。您应该尝试通过使用try和抛出异常来使代码优雅地消亡。您可以使用console以不同的方式记录不同的消息,并且您可以让它说出您想要的内容

这是一个很好的资源,用于突出显示控制台消息

关于缺少的参数,我会在

if (typeof name === "undefined") {
    // ...
}

与C#和Java等强类型C风格语言不同,JavaScript没有很多现成的异常类型

try..catch
也是该语言的一个很少使用的功能,因此在JavaScript中看到人们显式地抛出
并不常见

随着相对较新的语言承诺的引入,尤其是--
try..catch
变得越来越普遍

至于具体抛出什么错误,始终取决于单个开发人员,我建议记录您的API将抛出什么错误。也就是说,语言中有一些常见的错误,它们具有自然的用例:

  • -显然,这是引发泛型错误的泛型类
  • -如果输入不在适当的范围内,例如当您期望一个正数而收到一个负数时,抛出此选项
  • -通常这是针对不存在的变量,但对于通过字符串公开数据访问的API也很有用。即:

    getData('foo') //ReferenceError: 'foo' does not exist in data`
    
  • -当值的类型不正确(可能是您想要的类型)时,这表示错误。例如,您有一个需要函数的回调参数,而用户提供了一个字符串


内置的
Error
类型比这些类型多,但它们在野外不太常见。

与C#和Java等强类型C风格语言不同,JavaScript没有很多现成的异常类型

try..catch
也是该语言的一个很少使用的功能,因此在JavaScript中看到人们显式地抛出
并不常见

随着相对较新的语言承诺的引入,尤其是--
try..catch
变得越来越普遍

至于具体抛出什么错误,始终取决于单个开发人员,我建议记录您的API将抛出什么错误。也就是说,语言中有一些常见的错误,它们具有自然的用例:

  • -显然,这是引发泛型错误的泛型类
  • -如果输入不在适当的范围内,例如当您期望一个正数而收到一个负数时,抛出此选项
  • -通常这是针对不存在的变量,但对于通过字符串公开数据访问的API也很有用。即:

    getData('foo') //ReferenceError: 'foo' does not exist in data`
    
  • -当值的类型不正确(可能是您想要的类型)时,这表示错误。例如,您有一个需要函数的回调参数,而用户提供了一个字符串


内置的
错误类型比这些类型多,但它们在野外不太常见。

看看内置函数抛出的错误。
throw“Error:question显示很少研究,也没有试图解决问题”
我实际上一直在研究它。不过,谢谢你把鼻子抬得太高,没什么用处。很抱歉问了这么一个问题。你的态度肯定没用。我知道如何
抛出新错误(“嘿,我键入了什么”)我在寻找一个有点优点的答案。可能重复的是查看内置函数抛出的错误。
throw“错误:问题显示很少研究,也没有试图解决问题”
我实际上一直在研究它。不过,谢谢你把鼻子抬得太高,没什么用处。很抱歉问了这么一个问题。你的态度肯定没用。我知道如何
抛出新错误(“嘿,我键入了什么”)我正在寻找一个有点优点的答案。可能是重复的谢谢你,但我知道如何自定义错误。我在寻找对这种情况的标准回应。我真的不明白你的问题。或者你能提供一个更清楚的问题的例子谢谢你,但我知道如何自定义错误。我在寻找对这种情况的标准回应。我真的不明白你的问题。或者你可以提供一个问题的例子,以便更清楚地回答。谢谢你的详细回答。这正是我所期望的,但我想确认我处理事情的方式是正确的。我相信文档化步骤是最重要的部分。感谢您的详细回复。这正是我所期望的,但我想确认我处理事情的方式是正确的。我相信文档化步骤是最重要的组成部分。