Вопрос проверяет понимание корректной обработки ошибок и защитного программирования в JavaScript.
Ошибку следует выбрасывать сразу при обнаружении некорректного аргумента. Обычно используют throw и стандартные классы ошибок, такие как TypeError или Error. Сообщение ошибки должно быть понятным и описывать проблему. Это упрощает отладку и предотвращает выполнение некорректной логики. Такой подход считается хорошей практикой.
Корректная обработка ошибок начинается с явной проверки входных данных.
Ранняя проверка аргументов
Проверка должна выполняться в начале функции, до основной логики.
Использование подходящего типа ошибки
TypeError — если аргумент неверного типа
RangeError — если значение вне допустимого диапазона
Error — для общих случаев
Понятное сообщение ошибки
Сообщение должно объяснять:
какой аргумент некорректен
какое значение ожидалось
function some<T>(array: T[], callback: (value: T) => boolean): boolean {
if (!Array.isArray(array)) {
throw new TypeError('First argument must be an array')
}
if (typeof callback !== 'function') {
throw new TypeError('Second argument must be a function')
}
for (let i = 0; i < array.length; i++) {
if (callback(array[i])) {
return true
}
}
return false
}
ошибки обнаруживаются сразу
код становится предсказуемым
упрощается отладка и поддержка
Правильное выбрасывание ошибок — это явная проверка аргументов и использование подходящих типов ошибок с понятными сообщениями.