Явная ошибка: проверка предусловия функции
Оператор 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 в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.