Вебсправочник
Справочник JavaScript

Явная ошибка: проверка предусловия функции

Оператор throw прекращает обычное выполнение и передаёт исключение ближайшему подходящему обработчику.

Назначение

Оператор throw прекращает обычное выполнение и передаёт исключение ближайшему подходящему обработчику.

Как это работает

Объект Error хранит сообщение и дополнительные диагностические сведения среды. Для неверного типа аргумента подходит TypeError, для значения вне допустимого диапазона — RangeError, если это соответствует контракту функции.

Пример

function pages(count,size){if(size<=0)throw new RangeError('Размер должен быть положительным');return Math.ceil(count/size);}
console.assert(pages(21,10)===3);
let rejected=false;
try{pages(21,0);}catch(error){rejected=error instanceof RangeError;}
console.assert(rejected);

Что должно получиться

Корректный вызов даёт три страницы, нулевой размер отклоняется до деления. Для полного публичного API дополнительно проверяют типы, конечность и допустимость количества.

Граница применения и частая ошибка

Не выдавайте внутренние трассировки и секретные значения пользователю в публичном ответе. Разделяйте подробную диагностику и безопасное объяснение ошибки интерфейсу.

Самостоятельная проверка

Передайте корректный размер, ноль и отрицательное значение. Проверьте тип ошибки и убедитесь, что после throw вычисление с неверным аргументом не продолжается.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.