Error.prototype.cause
Исходная причина ошибки — чтобы не потерять её при повторном выбросе.
Доступно с: ES2022
Синтаксис
new Error(message, { cause })Возвращаемое значение
anyИсходная ошибка или любое значение, переданное в cause.
Примеры
Обернуть низкоуровневую ошибку понятной:
function loadConfig(text) {
try {
return JSON.parse(text);
} catch (error) {
throw new Error('Config is broken', { cause: error });
}
}
try {
loadConfig('{oops');
} catch (error) {
console.log(error.message);
console.log(error.cause.name);
}Результат:
Config is broken
SyntaxErrorПримечания
Так пользователь видит понятное сообщение, а разработчик в cause — технические подробности.
См. также
- Error — Базовый класс ошибок: создаётся и выбрасывается через throw.
- try...catch — Перехватывает ошибки, чтобы программа не остановилась.
- throw — Выбрасывает ошибку и прерывает выполнение функции.
В учебнике
- Свои классы ошибок — Собственные ошибки в JavaScript: наследование от Error, свойство name, дополнительные данные, проверка через instanceof, повторный выброс и cause.