Exception Filter

NestJS 🟡 Mid

Définition

Classe décorée @Catch qui intercepte les exceptions non gérées et les transforme en réponses HTTP structurées. Centralise la gestion d'erreurs.

Analogie

Comme un filet de sécurité sous un trapéziste : il attrape les chutes et les transforme en atterrissage contrôle.

Exemple de code

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

Cas d'usage

Formater toutes les erreurs API de manière cohérente avec des codes d'erreur et messages standardises.

Anti-pattern

Entourer chaque handler de try/catch au lieu d'utiliser un filtre d'exception global.

Termes liés

#core#interview

En entretien

  1. Explique-moi le rôle d'un Exception Filter dans NestJS.

    C'est une classe décorée @Catch qui intercepte les exceptions non gérées et les transforme en réponses HTTP structurées, comme un filet de sécurité sous un trapéziste qui attrape les chutes et les transforme en atterrissage contrôlé. Ça centralise la gestion d'erreurs au lieu de la disperser partout.

  2. Pourquoi éviter d'entourer chaque handler d'un try/catch au lieu d'utiliser un filtre global ?

    Parce que c'est l'anti-pattern identifié : ça duplique la logique d'erreur dans chaque handler au lieu de la centraliser. Un filtre global permet de formater toutes les erreurs API de manière cohérente, avec des codes et messages standardisés.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre