nestjs-error-handling
Global Exception Filters and standard error formats.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
NestJS Error Handling Standards
Priority: P1 (OPERATIONAL)
Global error handling and exception management patterns.
-
Requirement: Centralize error formatting.
-
Platform Agnostic: Do not import
Request/Responsefrom Express/Fastify types directly.-
Use:
HttpAdapterHostto access the underlying platform response methods. -
const { httpAdapter } = this.httpAdapterHost;
-
Use:
-
Structure:
- Implement strictly typed error responses.
- Refer to API Standards for
ApiErrorResponse.
{ "statusCode": 400, "message": "Validation failed", "error": "Bad Request", "timestamp": "ISO...", "path": "/users" }
Error Flow
-
Service: Throws specific or generic errors (e.g.,
EntityNotFoundError). -
Interceptor: Maps low-level errors to HTTP Exceptions (e.g.,
catchError(err => throw new NotFoundException())).- Why: Keeps Exception Filters focused on formatting, not business logic interpretation.
- Global Filter: Formats the final JSON response.
Built-in Exceptions
-
Use: Throw
NotFoundException,ForbiddenException,BadRequestException. -
Custom: Extend
HttpExceptiononly for domain-specific failures that need specific status codes.
Logging
-
Context: Always pass
MyClass.nameto theLoggerconstructor. -
Levels:
-
error: 500s (Stack trace required). -
warn: 400s (Client errors).
-
Security (Information Leakage)
-
Production: NEVER expose stack traces in HTTP responses (
process.env.NODE_ENV === 'production'). -
Sanitization: Ensure
ApiExceptionpayloads do not leak internal file paths or raw variable dumps.
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-01-26
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!