Есть ли способ явно вызвать исключение из выражения в JavaScript, помимо размещения этой throw
функции-оболочки?
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>
? - person Denys Séguret   schedule 18.07.2014throw
непосредственно из выражения? Вы бы добавили только некоторые условия - так почему бы не использовать блокиif
/else
илиtry
/catch
?... Вы просите однострочную проверку? - person Casey Falk   schedule 18.07.2014JSON.parse()
. Может быть, это не то, что вы хотите, но контекст вашего вопроса мне не ясен. Это почти всегда проблема с вопросами без кода: они расплывчаты. - person Denys Séguret   schedule 18.07.2014