Ingernirated
@Ingernirated
Романыч

Какой смысл в throw?

Подскажите пожалуйста, какой смысл в throw?
В статье показан пример, но он ведь и без throw сработает или throw создает текст аргумента catch?
Но всё ровно, к чему такая путаница?
try { 
        if(x == "")  throw "empty";
        if(isNaN(x)) throw "not a number";
        x = Number(x);
        if(x < 5)    throw "too low";
        if(x > 10)   throw "too high";
    }
    catch(err) {
        message.innerHTML = "Input is " + err;
    }
  • Вопрос задан
  • 191 просмотр
Решения вопроса 3
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Какой смысл в throw?

Смысл throw в выбросе исключения.
Ответ написан
Комментировать
lxsmkv
@lxsmkv
Test automation engineer
смысл этого кидалова - если тебе прилетели аргументы которых там быть не должно (а язык не строго типизированый) можно нажать на стоп кран и сказать "э, э, не, не, так нельзя". Например в поле ввода для длины, пользователь вводит отрицательное значение. Оно для арифметики допустимо, но для расчета нет. В такие и всякие других случаях можно кидать исключение, и в блоке обработки например, сообщить пользователю о неверном вводе, или откорректировать значение, или еще чего нибудь.

throw создает обьект, который передается в catch вот и все. в вашем примере обьект строкового типа, но может быть любого, также и сложносоставной обьект.
Ответ написан
fnnzzz
@fnnzzz
front-end dev
с помощью Throw ты можешь "выбросить" ошибку определенного типа и в catch по-разному их обрабатывать.
ну, например - абстрактный пример: в одном случае ты "выбросил" ошибку "connection_error", а
в другом - "not_supported_feature".
В первом случае ты можешь обработать эту ошибку и попробовать переподключиться, а во втором случае ты можешь вывести сообщение пользователю, мол "обнови софт/браузер etc"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы