# Throw Error

O **Throw Error** emite um erro dentro de um *pipeline* ou *subpipeline*. Ele pode ser usado para:

* interromper um *pipeline* com erro.
* interromper um componente que utilize *subpipelines* para processamento.

## Parâmetros

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por [expressões *Double Braces*](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados com `(DB)`.

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Error Message</strong></td><td>Define a mensagem de erro que acompanha o código de erro.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>HTTP Status Code</strong></td><td>Define o código do erro (utilizamos como base códigos de erro HTTP).</td><td><em>500-Internal Server Error</em></td><td>Inteiro</td></tr><tr><td><strong>Enable Custom Error</strong></td><td>Define que o usuário deseja utilizar um erro customizado.</td><td><em>False</em></td><td>Booleano</td></tr><tr><td><strong>Custom Error (JSON)</strong></td><td>Pode ser usado para definir uma mensagem customizada de erro (neste caso, <strong>HTTP Status Code</strong> e <strong>Error Message</strong> são ignorados).</td><td>N/A</td><td><em>String</em></td></tr></tbody></table>

## Throw Error em ação <a href="#throw-error-em-ao" id="throw-error-em-ao"></a>

### Tratamento de erros padrão (customErrorEnabled) <a href="#tratamento-de-erros-padro-customerrorenabled" id="tratamento-de-erros-padro-customerrorenabled"></a>

O **Throw Error** pode ser utilizado para o tratamento de erros padrão. Erro padrão é aquele que segue as definições da Digibee Integration Platform e que contém um código e uma mensagem.

Quando esse tipo de erro resulta na interrupção do *pipeline*, então a seguinte saída é produzida:

```
{
  "timestamp": <um número longo informando o timestamp de quando o erro foi gerado>,
  "error": <a mensagem configurada>,
  "exception": "PipelineEngineRuntimeException",
  "code": <o código configurado>
}
```

### Tratamento de erros customizados <a href="#tratamento-de-erros-customizados" id="tratamento-de-erros-customizados"></a>

O **Throw Error** também pode ser utilizado para o tratamento de erros customizados. Nesse caso, um objeto JSON completo é informado na configuração do componente e posteriormente informado na saída do *pipeline* que resultou em erro.

{% hint style="info" %}
Alguns *triggers*, como por exemplo [**REST**](/documentation/connectors-and-triggers/pt-br/triggers/web-protocols/rest.md), [**HTTP**](/documentation/connectors-and-triggers/pt-br/triggers/web-protocols/http.md) e [**HTTP File**](/documentation/connectors-and-triggers/pt-br/triggers/web-protocols/http-file.md), necessitam receber uma propriedade *code* e uma propriedade *error* na saída do *pipeline* para preparar o código de retorno da chamada HTTP.
{% endhint %}

### Componentes que utilizam *subpipelines* <a href="#componentes-que-utilizam-subpipelines" id="componentes-que-utilizam-subpipelines"></a>

Quando o ***Throw Error*** é utilizado em um componente que utiliza o *subpipeline* **onProcess**, o erro configurado é informado como entrada do *subpipeline* **onException**. Se a opção **Custom Error (JSON)** for preenchida, então o conteúdo do objeto JSON é igual ao descrito nas seções [Tratamento de erros padrão](#tratamento-de-erros-padro-customerrorenabled) ou [Tratamento de erros customizados](#tratamento-de-erros-customizados).

Para entender melhor o conceito, [leia o artigo Subpipelines](/documentation/developer-guide/pt-br/development-cycle/build-overview/pipelines/subpipelines.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/tools/throw-error.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
