> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gestion des exceptions

Dans la plupart des applications, certaines erreurs sont levées sans être liées à d'éventuels bugs dans votre code ; elles se produisent simplement lorsque votre application entre en contact avec le monde réel, par exemple lorsqu'un bot essaie de remplir un formulaire.

Pour éviter que ces erreurs ne soient signalées comme des problèmes dans AppSignal, il est possible d'ajouter une gestion des exceptions à votre code ou même de faire totalement ignorer certaines erreurs par AppSignal.

## Ignorer les erreurs

La configuration d'AppSignal permet d'[ignorer les erreurs](/guides/filter-data/ignore-errors). En fournissant une liste de noms d'erreurs spécifiques dans une liste de refus, AppSignal n'enverra pas d'alertes lorsque ces erreurs sont levées.

## Enregistrer les exceptions

Pour utiliser les helpers setError et sendError, vous devez les importer depuis `@appsignal/nodejs` :

<CodeGroup>
  ```javascript Node.js theme={null}
  import { setError, sendError } from "@appsignal/nodejs";
  ```
</CodeGroup>

<Tip>
  Les erreurs fournies en argument à `sendError` et `setError` doivent être des
  valeurs de type
  [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error).
</Tip>

### Set Error

Si vous souhaitez intercepter les exceptions dans votre application pour éviter les plantages, tout en suivant leur occurrence, vous pouvez utiliser `setError()` pour ajouter l'erreur au span actif courant de votre application.

<CodeGroup>
  ```javascript Node.js theme={null}
  import { setError, sendError } from "@appsignal/nodejs"

  app.get("/kittens", (req, res) => {
    try {
      fetchAllKittens()
    } catch (err) {
      setError(err)
    }
  }
  ```
</CodeGroup>

### Send Error

La fonction `sendError()` peut être utilisée pour enregistrer un incident dans un nouveau span racine. Lors de l'utilisation de `sendError()`, l'erreur est envoyée indépendamment du contexte actuel, de sorte que l'échantillon de la requête ne sera pas marqué comme une erreur. Par conséquent, il peut être utile de fournir un contexte supplémentaire en utilisant les [fonctions helper de span non-enfant](/nodejs/3.x/instrumentation/instrumentation#helpers).

Contrairement à `setError()`, la fonction `sendError()` peut être utilisée dans un contexte où il n'y a pas d'instrumentation, comme un script ponctuel ou une file d'attente de tâches.

Dans l'exemple ci-dessous, `setCustomData()` est utilisé pour ajouter des données supplémentaires au span d'erreur.

<CodeGroup>
  ```javascript Node.js theme={null}
  import { setError, sendError } from "@appsignal/nodejs"

  app.get("/kittens", (req, res) => {
    try {
      fetchAllKittens()
    } catch (err) {
      // oh no, we ran out of kittens!
      // let's keep a note that this happened...
      sendError(err, () => {
        setCustomData({ message: "We ran out of kittens!" })
      })
      // ...and go adopt some more!
      adoptMoreKittens()
    }
  }
  ```
</CodeGroup>

L'exception sera suivie par AppSignal comme n'importe quelle autre erreur, et cela vous permet de fournir une gestion des erreurs personnalisée et des solutions de repli.
