@LazariusPaskalius

Для чего нужен throw в JS?

Для чего нужна инструкция throw в Js? Я в курсе, что это для создания исключений, но о каких именно исключениях идет речь? В какой ситуации необходимо использовать throw? С примером пожалуйста, если можно.
  • Вопрос задан
  • 5881 просмотр
Решения вопроса 2
Xuxicheta
@Xuxicheta
инженер
function скажиМяу(кот) {
  if (!кот.сказатьМяу) {
    throw new Error('это не кот и он не умеет говорить мяу, дурень');
  }
  кот.сказатьМяу()
}

вот примерно для этого
Ответ написан
Комментировать
mbelskiy
@mbelskiy
Software Developer
Предлагаю посмотреть на вопрос шире – throw используется не только в JS, но при этом для одних и тех же целей. Тут уже есть хорошие ответы:
- Зачем нужны исключения?
- https://sprosi.pro/questions/3445/isklyucheniya-za...
- https://ru.wikipedia.org/wiki/Обработка_исключений
- https://ravesli.com/urok-181-isklyucheniya-zachem-...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Если не ошибаюсь.

"throw" - исключение.
"catch" - ловить или перехватить ошибку.

Работает в идеале все в единой связке "try-catch-finally".

Исключение - событие ( что то не так в коде).
Возбудить исключение ( или создать, бросить ) - сигнализировать об исключительной ситуации в коде.
Перехватить исключения - значит выполнить действе для обработки кода ( восстановить работоспособность ).

try {
// здесь в коде что то может пойти не так, если есть поломка " бросить" исключение.
} catch(err) {
// здесь пишем обработчик ошибки (в переменную err предается код возникшей ошибки) например аргумент оператора throw , генерируем исключение.
throw new Error ( "Ошибка в блоке №...");
} finally {
// Здесь пишем, что должно выполнится в любом случае, есть ли ошибка или нет ( или при завершении по любому оператору перехода return, break, continue).
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
20 апр. 2024, в 13:23
1000 руб./за проект
20 апр. 2024, в 12:50
30000 руб./за проект
20 апр. 2024, в 12:01
20000 руб./за проект