nestjs-error-handling
maintained by HoangNguyen0403
star
143
account_tree
48
verified_user
MIT License
name: NestJS Error Handling description: Global Exception Filters and standard error formats. metadata: labels: [nestjs, errors, filters] triggers: files: ['**/*.filter.ts', 'main.ts'] keywords: [ExceptionFilter, Catch, HttpException]
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.
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
143
GitHub Forks
48
Created
Jan 2026
Last Updated
il y a 5 mois
tools
tools debugging
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!