Выбор ответа Middle Ошибки и логирование обновлено

Опция cause у Error

Вопрос

Зачем писать throw new Error("Не удалось создать заказ", { cause: err })?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Сохранить исходную ошибку: в логе видна цепочка причин. cause (ES2022) хранит исходную ошибку в свойстве error.cause.

Варианты ответа

  1. Сохранить исходную ошибку: в логе видна цепочка причинправильный ответ
  2. Чтобы ошибка не попала в лог как необработанная
  3. Чтобы Node автоматически повторил операцию
  4. Чтобы ошибка стала операционной, а не программной

Разбор

cause (ES2022) хранит исходную ошибку в свойстве error.cause. Можно бросить понятную ошибку уровня бизнес-логики и не потерять низкоуровневую причину вроде таймаута базы. Node выводит цепочку cause при печати ошибки.

Остальные варианты приписывают cause эффекты, которых у него нет: он не влияет на логирование, повторы или классификацию.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.