@Catch() & ExceptionFilter în NestJS

@Catch() & ExceptionFilter în NestJS: Definirea filtrelor globale sau locale pentru capturarea și formatarea personalizată a excepțiilor HTTP....

@Catch() & ExceptionFilter este o componentă esențială în ecosistemul NestJS. Definirea filtrelor globale sau locale pentru capturarea și formatarea personalizată a excepțiilor HTTP.

Sintaxă și Utilizare Practică

Exemplu practic documentat pas cu pas:

import { ExceptionFilter, Catch, ArgumentsHost, HttpException } from '@nestjs/common';

@Catch(HttpException)
export class CustomHttpFilter implements ExceptionFilter {
  catch(exception: HttpException, host: ArgumentsHost) {
    const ctx = host.switchToHttp();
    const response = ctx.getResponse();
    const status = exception.getStatus();

    response.status(status).json({
      cod: status,
      mesaj: exception.message,
      data: new Date().toISOString()
    });
  }
}

Bune Practici în Producție

  • Arhitectură și Tipizare: Folosiți DTO-uri, validare strictă și principii de decuplare (Inversion of Control).
  • Performanță: Evitați interogările N+1, folosiți mecanisme de caching și rute asincrone unde este cazul.
  • Securitate: Validați întotdeauna datele de intrare și aplicați filtre de autorizare pe toate endpoint-urile sensibile.