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

标签 javascript error-handling try-catch

最近有人问我一个问题:

有没有办法在 javaScript 中不使用 throw 来抛出错误?

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

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

try {
  myFunc()
}catch(e) {
  console.log(e)
}

并且不知道我说的任何其他方式不,没有其他方式。但现在我想知道我是否正确?

所以问题是你是否可以在不使用 throw

的情况下在 JavaScript 中抛出一个自定义错误

限制:

  • 请不要使用 evalFunction
  • 不要在你的代码中使用throw

附加:

如果你不用Error这个词就可以抛出错误

最佳答案

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

(function*(){})().throw(new Error("example"))

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

关于javascript - 如何在不抛出错误的情况下抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50571987/

相关文章:

c# - 验证文本框是否仅包含数字

r - 异常处理 RSelenium switchToFrame() 错误 : ElementNotVisible

javascript - 为什么我的 OpenLayers 3 map 没有显示在 Internet Explorer 11 中?

php - PHP Whoops错误处理程序电子邮件

javascript - 将数据计数附加到不同的系列

json - Restful API - 带有单个或所有错误的 JSON 响应

python - 使用嵌套循环的反元音在 python2 中具有索引错误

将单个语句包装在 try except block 中的 Python 干净方法

javascript - 如何使用 AngularJS scope.$bind

javascript - 检查嵌套对象(对象数组)中是否存在将属性设置为特定值的对象