Выбор ответа Middle Ошибки обновлено
Как обернуть ошибку, сохранив исходную
Вопрос
Как правильно создать новую ошибку, сохранив исходную err (ES2022)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: new Error('Не удалось сохранить', { cause: err }). Конструктор Error принимает вторым аргументом объект опций, и поле cause сохраняется в свойство err.cause новой ошибки.
Варианты ответа
new Error('Не удалось сохранить', err, { chain: true })new Error('Не удалось сохранить').cause(err)new Error('Не удалось сохранить', { cause: err })правильный ответError.wrap(err, 'Не удалось сохранить', { cause: err })
Разбор
Конструктор Error принимает вторым аргументом объект опций, и поле cause сохраняется в свойство err.cause новой ошибки. DevTools и Node показывают цепочку причин. Если передать ошибку вторым аргументом напрямую, у неё нет поля cause (если только она сама не объект с таким полем), и причина потеряется. Метода cause() и статического Error.wrap нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.