2015-12-31 4 views
1

Я ищу сокращенный синтаксис для выдачи ошибки, если какое-то значение является «ложным», например.Значение или исключение исключения

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

Приведенное выше дает синтаксическую ошибку. Есть ли подобная стенография, или мне нужно прибегнуть к более длинной форме ниже?

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

ответ

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'); }(); 
+0

Я пропустил «все языки выражения»;) – Dylan

Смежные вопросы