Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

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.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.