> ## 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.

# Exception-Handling

In den meisten Anwendungen werden einige Fehler ausgelöst, die nicht mit möglichen Bugs in Ihrem Code zusammenhängen; sie treten einfach auf, wenn Ihre App mit der realen Welt in Kontakt kommt, z. B. wenn ein Bot versucht, ein Formular auszufüllen.

Um zu vermeiden, dass diese Fehler in AppSignal als Probleme angezeigt werden, ist es möglich, Ihrem Code Exception-Handling hinzuzufügen oder AppSignal bestimmte Fehler vollständig ignorieren zu lassen.

## Fehler ignorieren

Die AppSignal-Konfiguration ermöglicht es, [Fehler zu ignorieren](/guides/filter-data/ignore-errors), indem Sie eine Liste bestimmter Fehlernamen in einer Sperrliste angeben. AppSignal sendet dann keine Warnungen, wenn diese Fehler ausgelöst werden.

## Exceptions aufzeichnen

Um die Helper `setError` und `sendError` zu verwenden, müssen Sie sie aus `@appsignal/nodejs` importieren:

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

<Tip>
  Die Fehler, die als Argument an `sendError` und `setError` übergeben werden, müssen [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error)-ähnliche Werte sein.
</Tip>

### Set Error

Wenn Sie Exceptions in Ihrer Anwendung abfangen möchten, um Abstürze zu verhindern, aber trotzdem das Auftreten verfolgen möchten, können Sie `setError()` verwenden, um den Fehler zum aktuell aktiven Span Ihrer Anwendung hinzuzufügen.

<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

Die Funktion `sendError()` kann verwendet werden, um einen Vorfall in einem neuen Root-Span aufzuzeichnen. Bei Verwendung von `sendError()` wird der Fehler unabhängig vom aktuellen Kontext gesendet, sodass das Sample für die Anfrage nicht als Fehler markiert wird. Daher kann es hilfreich sein, weiteren Kontext durch die Verwendung von [Nicht-Child-Span-Helferfunktionen](/nodejs/3.x/instrumentation/instrumentation#helpers) bereitzustellen.

Im Gegensatz zu `setError()` kann die Funktion `sendError()` in einem Kontext verwendet werden, in dem keine Instrumentierung vorhanden ist, wie z. B. in einem einmaligen Skript oder einer Job-Queue.

Im folgenden Beispiel wird `setCustomData()` verwendet, um dem Fehler-Span zusätzliche Daten hinzuzufügen.

<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>

Die Exception wird von AppSignal wie jeder andere Fehler verfolgt und ermöglicht es Ihnen, benutzerdefinierte Fehlerbehandlung und Fallbacks bereitzustellen.
