Pular para o conteúdo principal
Na maioria das aplicações, alguns erros serão lançados que não estão relacionados a possíveis bugs no seu código; eles simplesmente acontecem quando seu app entra em contato com o mundo real, como quando um bot tenta preencher um formulário. Para evitar que esses erros sejam lançados como problemas no AppSignal, é possível adicionar tratamento de exceções ao seu código ou até mesmo fazer com que o AppSignal ignore completamente certos erros.

Ignorar erros

A configuração do AppSignal permite ignorar erros: ao fornecer uma lista de nomes específicos de erros em uma denylist, o AppSignal não enviará alertas quando esses erros forem lançados.

Registrando exceções

Para usar os helpers setError e sendError você precisa importá-los de @appsignal/nodejs:
import { setError, sendError } from "@appsignal/nodejs";
Os erros passados como argumento para sendError e setError precisam ser valores semelhantes a Error.

Set Error

Se você quiser capturar exceções na sua aplicação para evitar crashes, mas ainda assim quiser rastrear a ocorrência, pode usar setError() para adicionar o erro ao span ativo atual da sua aplicação.
import { setError, sendError } from "@appsignal/nodejs"

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

Send Error

A função sendError() pode ser usada para registrar um incidente em um novo span raiz. Ao usar sendError(), o erro é enviado independentemente do contexto atual, então a amostra para a requisição não será marcada como um erro. Portanto, pode ser útil fornecer mais contexto usando funções helper de span que não são filhas. Diferentemente de setError(), a função sendError() pode ser usada em um contexto onde não há instrumentação, como um script avulso ou uma fila de jobs. No exemplo abaixo, setCustomData() é usado para adicionar dados adicionais ao span de erro.
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()
  }
}
A exceção será rastreada pelo AppSignal como qualquer outro erro, e permite que você forneça tratamento de erros customizado e fallbacks.