Почему мой код JavaScript печатает не определено с исключением? - PullRequest
0 голосов
/ 26 марта 2019

Проблема здесь в том, что с выходными данными JavaScript также говорит undefined. Я видел некоторые коды на веб-сайтах w3schools.com и developers.mozilla и пробовал также некоторые другие сайты, но не нашел никакого решения или объяснения проблемы, с которой я столкнулся.

Я хочу вызвать исключение, когда возникает 0 или отрицательное значение.

function isPositive(a) {

  try {
    if (a > 0) return "YES";

    if (a < 0) throw "Negative Value";

    if (a == 0) throw "Zero Value";
  } catch (error) {
    console.log(error);
  }
}


console.log(isPositive(0));

Ожидаемый результат был "Zero Value"

Фактический вывод -

"Zero Value" 

undefined 

Любые предложения, почему мой код печатает неопределенный вместе с выводом? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Это потому, что если в * 1001 выдается какая-либо ошибка, это не останавливает выполнение кода. Если вы хотите остановить функцию при ошибке, просто удалите это try-catch и просто return

function isPositive(a){
    if(a>0) return "YES"
    if(a<0) return "Negative Value";
    if(a == 0) return "Zero Value";
}
console.log(isPositive(0));

Если вы хотите выбросить ошибку, выведите операторы из try

function isPositive(a){
    if(a>0) return "YES"
    if(a<0) throw ("Negative Value");
    if(a == 0) throw ("Zero Value");
}
console.log(isPositive(0));
0 голосов
/ 26 марта 2019

function isPositive(a){
try{
if(a>0) return "YES";

   if(a<0) throw "Negative Value";

   if(a == 0) throw "Zero Value";
}catch(err)
{
return err;
}
}


console.log(isPositive(0));

Я нахожу ответ, и этот код работает для меня и дает правильные результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...