【发布时间】:2014-07-18 14:16:32
【问题描述】:
除了将 throw 放置在函数包装器之外,还有其他方法可以从 JavaScript 中的表达式显式抛出异常吗?
throw 是一个语句,语句不产生值,因此它们不能用于对值进行操作并始终产生值的表达式中。很明显,任何语句都可以放在函数中,并且可以从表达式中使用函数调用。有没有办法避免将throw 语句包装到函数中并直接从表达式中抛出?
更新:
有些人说我不太清楚我在问什么。考虑一个假设的例子(不是真实的),这是我希望的工作,但它没有:
var one = value != null ? value * value : (throw new Error('The value has not been provided'));
var two = value != 0 ? 1 / value : (throw new Error('The result cannot be evaluated because the value is zero which would give a division by zero problem.));
【问题讨论】:
-
您的真正问题尚不清楚。
<script>throw 0</script>怎么了? -
你能举个例子或澄清你的意思吗?
-
为什么要直接从表达式中
throw?你只会抛出一些条件——那么为什么不使用if/else或try/catch块?...你要求单行检查吗? -
注意:我要求澄清,我并不是说这个问题不好。所以... +1。
-
更新了几个假设的例子。
标签: javascript expression statements