Хватит кидать ошибки в JS как в 2015-м
В 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 })
Так код становится понятнее, дебаг быстрее, а логи перестают превращаться в археологию.
Post #1965
524

- 👍 3
- 👎 1