UiPath Documentation
studio
2020.10
false
Studio ガイド
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。

グローバル例外ハンドラー

グローバル例外ハンドラーは、実行エラーが発生した場合にプロジェクトの動作を決定するよう設計されたワークフローの一種です。オートメーション プロジェクト 1 件につき、グローバル例外ハンドラー を 1 つだけ追加できます。

注:

グローバル例外ハンドラーが使用できるのはプロセスのみです。ライブラリには使用できません。

The Global Exception Handler has two arguments, that should not be removed.

1 つ目の引数は [入力] 方向にerrorInfoされ、発生したエラーと失敗したワークフローに関する情報を格納します。ログ対象とするエラー レベルは [ メッセージをログ ] アクティビティで設定できます。

注:

errorInfoActivityInfo プロパティを使用して、例外をスローしたアクティビティの名前を取得し、[出力] パネルに表示します。

2 つ目の引数は、出力方向の result です。エラー発生時に、この引数を使用してプロセスの次の動作を決定します。次の値が result 引数に割り当てられます。

  • Continue - 例外が再度スローされます。

  • 無視 - 例外を無視して、次のアクティビティから実行を続行します。

  • リトライ - 例外をスローしたアクティビティがリトライされます。errorInfoRetryCount メソッドを使用して、アクティビティのリトライ回数をカウントします。

  • 中止 - 現在のグローバル例外ハンドラーを実行した後に、実行が中止されます。

    注:

    Studio では、ライブラリ プロジェクト以外の任意のプロジェクトと Main.xamlグローバル例外ハンドラーとしてフラグ付けすることができます。

デバッグ中に発生したエラーを処理する

デバッグ中に例外が検出されると、失敗したアクティビティが強調表示され、実行が停止し、[ローカル] パネルと [コール スタック] パネルに例外の種類と詳細が表示されます。

Debugging actions like Continue, Stop, Retry, Ignore, Restart and Slow Step are available in the ribbon. Ignore is used for continuing the execution from the next activity.

グローバル例外ハンドラーが介入することなく、[リトライ] ボタンは現在のアクティビティを実行しようとします。続行操作を行うと、result 引数で以前に選択された値 (ContinueIgnoreRetry、または Abort のいずれか) を考慮して、グローバル例外ハンドラーを実行します。

注:

[トライ キャッチ] を含むプロジェクトで グローバル例外ハンドラー を使用する際には、必ず[Try] コンテナーの内部の[シーケンス] にアクティビティをグループ化してください。グループ化しないと、 グローバル例外ハンドラー は実行されません。

入れ子になったアクティビティの場合、グローバル例外ハンドラーは、コールスタックに含まれるそれぞれのアクティビティに対して実行されます。ただし、[トライ キャッチ] に直接カプセル化されている複数のアクティビティについては、これらが 1 つのアクティビティに格納されていない限り、グローバル例外ハンドラーは実行されません。

グローバル例外ハンドラーの使用例

次の例では、実行中に例外がスローされた場合のプロジェクトの動作を示します。

このオートメーション プロジェクトは、空で保存された Notepad ドキュメントの内部をクリックし、テキストを入力した後でアプリケーションを閉じるように設定されています。ただし、保存ボタンをクリックしてドキュメントを保存する前に、この操作が発生しないようにします。

エラー発生時のこのワークフローの動作を制御するために、グローバル例外ハンドラー はこのアクティビティを 3 回リトライしてから、エラー メッセージを表示して中止します。

ワークフローを作成する

  1. Create a Blank Process by following the steps in the Creating a Basic Process page.

  2. Notepad を開き、ドキュメントを使用中のマシンに保存します。

  3. From the Activities panel, drag a Type Into activity to the Designer panel. The activity is automatically added to a Sequence.

  4. [文字を入力] アクティビティで、[画面上で指定] をクリックします。Studio が最小化し、[メモ帳] ウィンドウの内部をクリックしてセレクターを作成できるようになります。テキスト フィールドに、目的のテキストを引用符で囲んで入力します。

  5. From the Activities panel, add a Send Hotkey activity to the workflow. Indicate the Notepad window, and select Ctrl from the activity, type in s in the Key field. This saves the Notepad document after the text was typed in.

  6. From the Activities panel, add a Close Application activity to the workflow. Indicate the Notepad window using Indicate on screen. The resulted workflow should look like this:

グローバル例外ハンドラーを追加する

  1. リボンの一部である [デザイン] タブで、[新規作成] > [グローバル ハンドラー] を選択します。[新しいグローバル ハンドラー]ウィンドウが開きます。ハンドラーの名前を入力して、プロジェクト パスに保存します。[作成] をクリックすると、グローバル例外ハンドラー がオートメーション プロジェクトに追加されます。

  2. [変数] タブで、retryCount という名前で Int32 の変数を作成します。その範囲をグローバル例外ハンドラー全体に設定して、[既定値] フィールドは空のままにしておきます。この変数はリトライ回数を格納します。エラーが発生するたびに 1 ずつ数値がインクリメントされます。

  3. failedActivity という名前の String 変数を作成し、その範囲をワークフロー全体に設定します。この変数は失敗したアクティビティの名前を格納し、[出力] パネルに表示します。

  4. From the Activities panel, add an Assign activity below the Log Error in the Global Handler sequence. Add the retryCount to the activity and assign it the errorInfo.RetryCount expression, which counts the number of times the exception is thrown.

  5. errorInfo.ActivityInfo.Name 式を failedActivity 変数に代入する別の[代入] アクティビティを追加します。この時点で、ワークフローは次のようになっています。

  6. Add an If activity to the workflow. Set the Condition to retryCount < 3 to limit the number of retries to 3.

  7. [Then] カテゴリの[代入] アクティビティの部分で、ErrorAction.Retryresult 変数に代入し、グローバル例外ハンドラーが例外をスローしたアクティビティをリトライするようにします。

  8. [Else] カテゴリで、ErrorAction.Abortresult に代入し、条件に適合したときにグローバル例外ハンドラーが実行を中止するようにします。[条件分岐 (if)] アクティビティは次のようになります。

グローバル例外ハンドラーは例外を検出すると、失敗したアクティビティの名前をログし、そのアクティビティを 3 回リトライします。実行のたびに同じ例外が発生し、リトライ回数が 3 回に達した場合、例外をスローしたアクティビティのレベルで実行を中止します。

試行中に 1 回でも例外が発生しなかった場合には、ワークフローの実行が継続され、グローバル例外ハンドラーは介入しません。

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得