Выбор ответа Middle Ошибки и логирование обновлено
Опция cause у Error
Вопрос
Зачем писать throw new Error("Не удалось создать заказ", { cause: err })?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сохранить исходную ошибку: в логе видна цепочка причин. cause (ES2022) хранит исходную ошибку в свойстве error.cause.
Варианты ответа
- Сохранить исходную ошибку: в логе видна цепочка причинправильный ответ
- Чтобы ошибка не попала в лог как необработанная
- Чтобы Node автоматически повторил операцию
- Чтобы ошибка стала операционной, а не программной
Разбор
cause (ES2022) хранит исходную ошибку в свойстве error.cause. Можно бросить понятную ошибку уровня бизнес-логики и не потерять низкоуровневую причину вроде таймаута базы. Node выводит цепочку cause при печати ошибки.
Остальные варианты приписывают cause эффекты, которых у него нет: он не влияет на логирование, повторы или классификацию.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.