Rechercher

PythonReactSEOPDF
GitHub Skill

nestjs-error-handling

Global Exception Filters and standard error formats.

HoangNguyen0403☆ 143 Étoiles du dépôt48 Forks du dépôt

Installation

Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.

Voir la source ↗Guides

Instructions

NestJS Error Handling Standards

Priority: P1 (OPERATIONAL)

Global error handling and exception management patterns.

  • Requirement: Centralize error formatting.

  • Platform Agnostic: Do not import Request/Response from Express/Fastify types directly.

    • Use: HttpAdapterHost to access the underlying platform response methods.
    • const { httpAdapter } = this.httpAdapterHost;
  • 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

  1. Service: Throws specific or generic errors (e.g., EntityNotFoundError).
  2. 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.
  3. Global Filter: Formats the final JSON response.

Built-in Exceptions

  • Use: Throw NotFoundException, ForbiddenException, BadRequestException.
  • Custom: Extend HttpException only for domain-specific failures that need specific status codes.

Logging

  • Context: Always pass MyClass.name to the Logger constructor.
  • 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 ApiException payloads 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)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!