Zum Hauptinhalt springen
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, 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:
import { setError, sendError } from "@appsignal/nodejs";
Die Fehler, die als Argument an sendError und setError übergeben werden, müssen Error-ähnliche Werte sein.

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.
import { setError, sendError } from "@appsignal/nodejs"

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

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 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.
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()
  }
}
Die Exception wird von AppSignal wie jeder andere Fehler verfolgt und ermöglicht es Ihnen, benutzerdefinierte Fehlerbehandlung und Fallbacks bereitzustellen.