IntrinsicException

NestJS 🔴 Senior

Définition

Classe de base exportée par @nestjs/common dont hérité HttpException. Les filtres d'exception integres de NestJS ne loguent jamais une instance d'IntrinsicException, ce qui permet de distinguer les erreurs attendues (partie du flux normal) des erreurs inattendues qui méritent d'être remontées.

Analogie

Comme un videur qui laisse entrer sans alerte les habitues sur liste (exceptions normales) mais déclenche l'alarme pour un inconnu (erreur réelle).

Exemple de code

export class OutOfStockException extends HttpException {
  constructor() {
    super('Produit epuise', HttpStatus.CONFLICT);
  }
}
// Herite d'IntrinsicException via HttpException :
// jamais loguee comme une erreur critique

Cas d'usage

Éviter de polluer les logs d'erreurs avec des exceptions métier attendues (stock épuisé, validation refusée).

Anti-pattern

Étendre Error directement pour une exception métier attendue, qui sera alors loguee comme une vraie erreur.

Termes liés

#core#interview

En entretien

  1. Explique-moi ce qu'est IntrinsicException et pourquoi ça existe.

    C'est une classe de base dont hérite HttpException, et les filtres d'exception intégrés de NestJS ne loguent jamais une instance d'IntrinsicException. Ça permet de distinguer les erreurs métier attendues, comme un videur qui laisse entrer sans alerte les habitués sur liste, des vraies erreurs inattendues.

  2. Quel est le piège si tu étends Error directement pour une exception métier attendue ?

    Elle sera loguée comme une vraie erreur critique alors que c'est un cas normal du flux métier, ce qui pollue les logs et rend le vrai débogage plus difficile.

  3. Donne-moi un cas concret où ça sert.

    Une exception 'stock épuisé' qui hérite de HttpException fait partie du flux normal de l'appli et ne doit pas remonter comme une erreur critique dans les logs de monitoring.

Fiche mise à jour le 2026-09-27

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