throw
Выбрасывает ошибку и прерывает выполнение функции.
Доступно с: ES3
Синтаксис
throw expressionПримеры
Проверка аргумента:
function divide(a, b) {
if (b === 0) {
throw new Error('Division by zero');
}
return a / b;
}
try {
console.log(divide(10, 2));
console.log(divide(1, 0));
} catch (error) {
console.log(error.message);
}Результат:
5
Division by zeroПовторный выброс ошибки, которую обрабатывать не нужно:
function parse(text) {
try {
return JSON.parse(text);
} catch (error) {
if (error instanceof SyntaxError) return null;
throw error;
}
}
console.log(parse('{bad'));Результат:
nullПримечания
Выбросить можно что угодно, даже строку, но принято выбрасывать объекты Error или его наследников: у них есть name, message и stack.
См. также
- try...catch — Перехватывает ошибки, чтобы программа не остановилась.
- Error — Базовый класс ошибок: создаётся и выбрасывается через throw.
- Error.prototype.cause — Исходная причина ошибки — чтобы не потерять её при повторном выбросе.
В учебнике
- Ошибки и try...catch — Обработка ошибок в JavaScript: блоки try, catch и finally, объект ошибки, оператор throw и встроенные типы ошибок.