Ошибки путешествуют снизу вверх, трансформируясь. Repository слой: ловит DB ошибки (PrismaClientKnownRequestError P2002) → бросает DomainError (EmailAlreadyExistsError). Use Case слой: бросает AppError с HTTP статусом (ConflictError 409). Controller слой: ловит AppError, маппит в HTTP ответ. Global error handler: ловит всё остальное → 500. Иерархия ошибок: AppError (базовый) → NotFoundError, ValidationError, ConflictError, UnauthorizedError. Каждый слой знает только о своём типе ошибок — не пробрасывает Prisma ошибки в контроллер.
Как организовать обработку ошибок в слоистой архитектуре?
Senior
286 просмотровAFK Offer AI
Как настроить Prometheus метрики в Node.js?