В JavaScript давно есть нормальные инструменты для ошибок, но многие до сих пор бросают просто throw new Error("something failed"). А потом пытаются понять, где именно всё сломалось. Что стоит использовать: - Custom Error классы - чтобы хранить statusCode, code, details и другие поля не в строке, а в структуре - Error.cause - чтобы оборачивать ошибку и не терять исходную причину - AggregateError - когда параллельно упало сразу несколько операций Главная идея простая: ошибка должна быть не просто текстом для лога, а нормальным объектом с контекстом. Плохой вариант: throw new Error("Could not load user") Лучше: throw new HttpError("Could not load user", 500, { cause: err }) Так код становится понятнее, дебаг быстрее, а логи перестают превращаться в археологию.