Skillshub nestjs-error-handling
Global Exception Filters and standard error formats. Use when implementing global exception filters or standardizing error responses in NestJS. (triggers: **/*.filter.ts, main.ts, ExceptionFilter, Catch, HttpException)
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/HoangNguyen0403/agent-skills-standard/nestjs-error-handling" ~/.claude/skills/comeonoliver-skillshub-nestjs-error-handling && rm -rf "$T"
manifest:
skills/HoangNguyen0403/agent-skills-standard/nestjs-error-handling/SKILL.mdsource content
NestJS Error Handling Standards
Priority: P1 (OPERATIONAL)
Global error handling and exception management patterns.
-
Requirement: Centralize error formatting.
-
Platform Agnostic: Do not import
/Request
from Express/Fastify types directly.Response- Use:
to access the underlying platform response methods.HttpAdapterHost 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
only for domain-specific failures that need specific status codes.HttpException
Logging
- Context: Always pass
to theMyClass.name
constructor.Logger - Levels:
: 500s (Stack trace required).error
: 400s (Client errors).warn
Security (Information Leakage)
- Production: NEVER expose stack traces in HTTP responses (
).process.env.NODE_ENV === 'production' - Sanitization: Ensure
payloads do not leak internal file paths or raw variable dumps.ApiException
Anti-Patterns
- No stack traces in production: Gate stack exposure behind
check.NODE_ENV === 'production' - No Express types in filters: Use
for platform-agnostic error handling.HttpAdapterHost - No HttpException in services: Throw domain errors in services; let Interceptors map to HTTP exceptions.