值或者抛出异常

时间:2015-12-31 21:26:36

标签: javascript

我正在寻找一种简短的语法,如果某些值是" falsy",就会抛出错误,例如。

var x = lookupSomeValue() || throw new Error('missing')

上面给出了语法错误。有没有类似的简写,还是我必须求助于下面的长篇形式?

var x = lookupSomeValue()
if(!x) throw new Error('missing')

1 个答案:

答案 0 :(得分:4)

throw是一个声明,因此无法在需要表达式的地方使用它。您可以创建一个只抛出错误的函数,然后将该函数作为表达式的一部分调用:

function throwMissing ( ) {
    throw new Error( 'missing' );
} 

如果您想抛出错误:

var x = lookupSomeValue() || throwMissing();

当然你也可以使用匿名功能:

var x = lookupSomeValue() || function(){ throw new Error('missing' ); }();

或使用ES6 arrow functions

var x = lookupSomeValue() || ()=>{ throw new Error('missing' ); }();