Javascript 当代码抛出字符串而不是错误时发出警告

Javascript 当代码抛出字符串而不是错误时发出警告,javascript,google-closure-compiler,Javascript,Google Closure Compiler,有时在JavaScript中,人们会编写抛出“出了问题”而不是抛出错误(“出错”) 第一个示例是完全有效的JS,但并不理想,因为字符串没有堆栈跟踪,但错误有。当代码抛出字符串而不是抛出错误时,闭包编译器是否会发出警告?您可以使用JS一致性文件来执行此操作。详细信息如下所示,但基本上您创建了一个文件js_compliance.txt: requirement: { type: BANNED_CODE_PATTERN error_message: 'The use of throw with

有时在JavaScript中,人们会编写
抛出“出了问题”而不是
抛出错误(“出错”)


第一个示例是完全有效的JS,但并不理想,因为字符串没有堆栈跟踪,但错误有。当代码抛出字符串而不是抛出错误时,闭包编译器是否会发出警告?

您可以使用JS一致性文件来执行此操作。详细信息如下所示,但基本上您创建了一个文件
js_compliance.txt

requirement: {
  type: BANNED_CODE_PATTERN
  error_message: 'The use of throw with a string is not allowed. Throw an Error object instead.'

  value: '/** @param {string|String} str */ function template(str) { throw str }'
}
并使用
--conformance\u configs=js\u conformance.txt将其传递给编译器

如果在您的代码库中有很多现有的
抛出“string”
s,您可以使用清理它们


有一个自定义的一致性规则,允许重新刷新