javascript 中是否应该使用特定的错误类型来表达未满足的要求?
Is there a specific error type that should be used to express an unmet requirement in javascript?
在创建供其他人使用的模块时,是否应该抛出标准化的特定错误类型来表示未满足的要求?
我是函数。我需要 x。 x 是未定义的,我对此很不高兴。我扔什么?
作为 MDN 示例,您可以定义一个新的异常 class 然后抛出它
这里是例子。希望有所帮助:)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/throw#Throw_an_object
这完全取决于您作为开发者。你应该尝试通过使用 try 和抛出异常来让你的代码优雅地结束。您可以使用控制台以不同的方式记录不同的消息,并且可以让它说出您想要的任何内容。
这里是突出显示控制台消息的好资源.. https://coderwall.com/p/m2trga/enhance-your-js-console-logging-messages
console.log('console.log');
console.info('console.info');
console.debug('console.debug');
console.warn('console.warn');
console.error('console.error');
就缺少参数而言,我会在...上记录警告
if (typeof name === "undefined") {
// ...
}
与 C# 和 Java 等强类型 C 风格语言不同,JavaScript 没有很多现成的异常类型。
try..catch
也是该语言的一个很少使用的特性,因此在 JavaScript.
中明确地看到人们 throw
并不太常见。
随着相对较新的语言引入 promises,并且——特别是——async
/await
try..catch
变得越来越普遍。
至于要具体抛出 什么 错误,这始终取决于各个开发人员,我建议记录您的 API 会抛出哪些错误。也就是说,语言中内置了一些 常见 错误并具有自然用例:
Error
- 显然这是通用的 class 抛出通用错误
RangeError
- 如果输入不在适当的范围内,例如当你期望一个正数而收到一个负数时抛出这个。
ReferenceError
- 通常这意味着不存在的变量,但这对于通过字符串公开数据访问的 APIs 也很有用。即:
getData('foo') //ReferenceError: 'foo' does not exist in data`
TypeError
- 当值类型不正确(这可能是您想要的)时,这表示错误。比如你有一个回调参数,需要一个函数,用户提供一个字符串。
内置的 Error
类型比这些更多,但它们在野外往往不太常见。
在创建供其他人使用的模块时,是否应该抛出标准化的特定错误类型来表示未满足的要求?
我是函数。我需要 x。 x 是未定义的,我对此很不高兴。我扔什么?
作为 MDN 示例,您可以定义一个新的异常 class 然后抛出它
这里是例子。希望有所帮助:)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/throw#Throw_an_object
这完全取决于您作为开发者。你应该尝试通过使用 try 和抛出异常来让你的代码优雅地结束。您可以使用控制台以不同的方式记录不同的消息,并且可以让它说出您想要的任何内容。
这里是突出显示控制台消息的好资源.. https://coderwall.com/p/m2trga/enhance-your-js-console-logging-messages
console.log('console.log');
console.info('console.info');
console.debug('console.debug');
console.warn('console.warn');
console.error('console.error');
就缺少参数而言,我会在...上记录警告
if (typeof name === "undefined") {
// ...
}
与 C# 和 Java 等强类型 C 风格语言不同,JavaScript 没有很多现成的异常类型。
try..catch
也是该语言的一个很少使用的特性,因此在 JavaScript.
throw
并不太常见。
随着相对较新的语言引入 promises,并且——特别是——async
/await
try..catch
变得越来越普遍。
至于要具体抛出 什么 错误,这始终取决于各个开发人员,我建议记录您的 API 会抛出哪些错误。也就是说,语言中内置了一些 常见 错误并具有自然用例:
Error
- 显然这是通用的 class 抛出通用错误RangeError
- 如果输入不在适当的范围内,例如当你期望一个正数而收到一个负数时抛出这个。ReferenceError
- 通常这意味着不存在的变量,但这对于通过字符串公开数据访问的 APIs 也很有用。即:getData('foo') //ReferenceError: 'foo' does not exist in data`
TypeError
- 当值类型不正确(这可能是您想要的)时,这表示错误。比如你有一个回调参数,需要一个函数,用户提供一个字符串。
内置的 Error
类型比这些更多,但它们在野外往往不太常见。