```mdx
---
title: "エラーの処理"
icon: "arrow-rotate-right"
---

![](https://assets-docs.dify.ai/2024/12/6e2655949889d4d162945d840d698649.png)
[大規模言語モデル](/en/guides/workflow/node/llm), [HTTP](/en/guides/workflow/node/http-request), [コード](/en/guides/workflow/node/code), および [ツール](/en/guides/workflow/node/tools) ノードは、エラー処理を標準でサポートしています。ノードが失敗した場合、以下の3つの動作のいずれかを取ることができます。

<AccordionGroup>
  <Accordion title="なし">
    デフォルトの動作です。ノードが失敗した場合、全体のワークフローが停止し、元のエラーメッセージが表示されます。

    以下のような場合に使用します:
    - テスト中で何が壊れたのかを確認したい時
    - このステップなしではワークフローを続行できない時
  </Accordion>
  <Accordion title="デフォルト値">
    ノードが失敗した場合に、代替値を使用します。ワークフローは継続します。

    ![](https://assets-docs.dify.ai/2024/12/e9e5e757090679243e0c9976093c7e6c.png)

    **要件**
    - デフォルト値はノードの出力タイプと一致している必要があります。文字列を出力する場合、デフォルトも文字列でなければなりません。

    **例**

    通常、あなたの大規模言語モデルノードは分析を返しますが、時折レート制限のために失敗します。このようなデフォルト値を設定します:

    ```
    "申し訳ありませんが、一時的に利用できません。数分後に再試行してください。"
    ```

    これにより、ユーザーは壊れたワークフローではなく、役立つメッセージを受け取ります。
  </Accordion>
  <Accordion title="失敗分岐">
    ノードが失敗した場合、エラーを処理するための別のフローをトリガーします。

    ![](https://assets-docs.dify.ai/2024/12/e5ea1af947818bd9e27cab3042c1c4f3.png)

    失敗分岐はオレンジ色で表示されます。以下のことができます:
    - エラーメッセージを送信する
    - 別のアプローチを試みる
    - デバッグのためにエラーをログに記録する
    - 代替サービスを使用する
    **例**

    メインのAPIが失敗した場合、失敗分岐が代替APIを呼び出します。ユーザーは問題があったことを知りません。
  </Accordion>
</AccordionGroup>

## ループ/イテレーションノードでのエラー

ループやイテレーション内で子ノードが失敗した場合、これらの制御フローノードには独自のエラー動作があります。

**ループノード**は、子ノードが失敗した場合、常に即座に停止します。ループ全体が終了し、エラーを返し、以降のイテレーションは実行されません。

**イテレーションノード**は、エラー処理モード設定を通じて子ノードの失敗をどのように処理するかを選択できます:

- `terminated` - いずれかの項目が失敗した場合、即座に処理を停止します（デフォルト）
- `continue-on-error` - 失敗した項目をスキップし、次の項目を続行します
- `remove-abnormal-output` - 処理を続行しますが、失敗した項目を最終出力から除外します

イテレーションを `continue-on-error` に設定すると、失敗した項目は出力配列で `null` を返します。 `remove-abnormal-output` を使用すると、出力配列には成功した結果のみが含まれるため、入力配列よりも短くなります。

## エラー変数

デフォルト値または失敗分岐を使用する場合、2つの特別な変数を取得します:

- `error_type` - どのような種類のエラーが発生したか（[エラーの種類](en/guides/workflow/error-handling/error-type)を参照）
- `error_message` - 実際のエラーの詳細

これを使用して:
- ユーザーに役立つメッセージを表示する
- チームに警告を送信する
- 異なる回復戦略を選択する
- デバッグのためにエラーを記録する

**例**

```
{% if error_type == "rate_limit" %}
リクエストが多すぎます。少し待ってから再試行してください。
{% else %}
何か問題が発生しました。私たちのチームが通知されました。
{% endif %}
```
```