Naar hoofdinhoud gaan
In de meeste applicaties worden er fouten gegenereerd die niet gerelateerd zijn aan mogelijke bugs in uw code; ze ontstaan gewoon wanneer uw app in contact komt met de echte wereld, bijvoorbeeld wanneer een bot een formulier probeert in te vullen. Om te voorkomen dat deze fouten als problemen in AppSignal worden gemeld, is het mogelijk om foutafhandeling aan uw code toe te voegen of zelfs AppSignal bepaalde fouten volledig te laten negeren.

Fouten negeren

De AppSignal-configuratie maakt het mogelijk om fouten te negeren door een lijst van specifieke foutnamen op een denylist te zetten; AppSignal zal dan geen waarschuwingen versturen wanneer deze fouten optreden.

Excepties registreren

Om de helpers setError en sendError te gebruiken, moet u deze importeren uit @appsignal/nodejs:
import { setError, sendError } from "@appsignal/nodejs";
De fouten die als argument aan sendError en setError worden meegegeven, moeten Error-achtige waarden zijn.

Set Error

Als u excepties in uw applicatie wilt opvangen om crashes te voorkomen, maar de gebeurtenis toch wilt volgen, kunt u setError() gebruiken om de fout toe te voegen aan de huidige actieve span van uw applicatie.
import { setError, sendError } from "@appsignal/nodejs"

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

Send Error

De functie sendError() kan worden gebruikt om een incident in een nieuwe root-span vast te leggen. Bij gebruik van sendError() wordt de fout onafhankelijk van de huidige context verstuurd, waardoor het sample voor de aanvraag niet als fout wordt gemarkeerd. Daarom kan het nuttig zijn om extra context te bieden via niet-onderliggende span-helperfuncties. In tegenstelling tot setError() kan de functie sendError() worden gebruikt in een context waar geen instrumentatie aanwezig is, zoals een eenmalig script of een job queue. In het onderstaande voorbeeld wordt setCustomData() gebruikt om aanvullende gegevens aan de fout-span toe te voegen.
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()
  }
}
De exceptie wordt door AppSignal gevolgd als elke andere fout en stelt u in staat om aangepaste foutafhandeling en fallbacks te bieden.