如何在不抛出的情况下抛出错误

Muh*_*man 5 javascript error-handling try-catch

最近我被问到一个问题:

有没有办法在不使用throwjavaScript的情况下抛出错误?

据我所知,错误只有一种方法可以在JavaScript中抛出错误,并且在JavaScript中使用throw语句如下:

var myFunc = () => {
  // some code here 
  throw 'Some error' // in a conditional 
  // some more code
}

try {
  myFunc()
}catch(e) {
  console.log(e)
}
Run Code Online (Sandbox Code Playgroud)

而且不知道我说的任何其他方式No, there is no other way.但现在我想知道我是不对的?

所以问题是你是否可以在不使用的情况下在JavaScript中抛出自定义错误throw


限制:

  • 请不要使用eval,Function.
  • 不要throw在你的代码中使用

附加:

如果你可以在不使用单词的情况下抛出错误 Error

Ber*_*rgi 5

生成器确实有一个throw方法,通常用于将异常抛出到生成器函数代码中(在表达式的位置yield,类似于next),但如果没有捕获,它将从调用中冒泡:

(function*(){})().throw(new Error("example"))
Run Code Online (Sandbox Code Playgroud)

当然,这是一种黑客行为,不是很好的风格,我不知道他们期望什么答案。特别是“不被零除”的要求是粗略的,因为无论如何被零除在 JS 中都不会抛出异常。