Хватит кидать ошибки в 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 })

Так код становится понятнее, дебаг быстрее, а логи перестают превращаться в археологию.
👍 8
🤔 3
2
2 37 2K

Обсуждение 2

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram