Пользователи порой бывают забавными и непредсказуемыми существами. Вот вы пишете свой шедевр приложения, а затем приходит непослушный пользователь, который не следит за тем, что вы пытались им выложить! А иногда просто не читают инструкции… В любом случае решение есть!

Иногда при создании функции вы хотите выдать ошибку, чтобы функция остановилась, как только произойдет что-то неожиданное.

Хороший пример этого - в следующей функции:

Здесь много чего происходит, но давайте разберемся с этим.

Строки 1–6 определяют объект с именем colorPalette, который будет содержать ключи, которые представляют собой английские слова для цветов, а в их значениях они будут на испанском языке.

Строки 8–22 определяют функцию, которая сможет принимать вводимые пользователем данные и переводить их в значения цвета на испанском языке.

Здесь мы определим некоторую обработку ошибок. Сначала мы хотим убедиться, что наш пользователь вводит цвета как строки, а не числа, например. Обратите внимание на строку 24, в которой вызывается наша функция и передается число. Мы получаем новую ошибку: «Пожалуйста, введите цвет». Братан…

Использование синтаксиса «выбросить новую ошибку» выполняет две задачи: сначала запрашивает отображение настраиваемого сообщения об ошибке, когда это происходит, и ОСТАНАВЛИВАЕТ чтение остальной части кода.

Как и когда мы получаем синтаксическую ошибку, это означает, что остальная часть нашего кода не будет прочитана.

Обратите внимание на 4 дополнительных раза, когда я вызвал нашу функцию, но безрезультатно. Ничего не регистрирует.

Теперь мы снова попробуем, на этот раз с цветом, который не определен в нашем объекте.

Опять ошибка! Крысы. Помните, объект, который мы определили ранее, содержит наши ключевые цвета? Входные данные должны соответствовать одному из наших ключевых цветов, чтобы можно было выводить правильный перевод.

Третий раз оберег…

Итак, мы идем! В строках 24–27 мы успешно вызвали нашу функцию с достаточным количеством входных данных и теперь знаем несколько цветов на испанском языке! Орале!

Как всегда, спасибо Мэтту из The Iron Yard Houston за его великолепное приложение для тестирования javaScript, Arbiter-Frame. Http://matthiasak.github.io/arbiter-frame/

Спасибо всем, я надеюсь, что это поможет, мы будем благодарны за любые отзывы. Мир