Error.cause — это возможность ES2022, которая позволяет объединять ошибки — оборачивать низкоуровневую ошибку в высокоуровневую, сохраняя полный контекст того, что пошло не так.
Когда ты ловишь ошибку, ты можешь передать исходную ошибку в качестве опции cause конструктору нового Error:
try {
dbQuery();
} catch (err) {
throw new Error("Failed to load user data", { cause: err });
}
Новая ошибка предоставляет понятное высокоуровневое сообщение, в то время как исходная ошибка сохраняется внутри для более глубокого анализа.
Используй свойство error.cause для получения контекста исходной ошибки:
try {
loadData();
} catch (err) {
console.log(err.message); // "Failed to load user data"
console.log(err.cause); // Исходная низкоуровневая ошибка
}
cause описывает почемуcause сам может иметь cause, позволяя создавать глубокие цепочки ошибокИнтервьюеры ожидают, что ты поймёшь: просто повторно выбросить err — значит потерять высокоуровневый контекст, а создать новую ошибку без cause — значит потерять исходный контекст. Error.cause решает обе проблемы, объединяя описательное сообщение с сохранённой исходной ошибкой, делая отладку в продакшене намного более эффективной.
Свойство Error.cause позволяет тебе сохранить исходный контекст ошибки при выбросе нового исключения, обеспечивая как высокоуровневое описательное сообщение, так и доступ к деталям базовой ошибки.
Новый — ещё не проверен сообществом
Вы