「トライキャッチ」アクティビティの概要

UiPathの「トライキャッチ」アクティビティは、その名の通り「エラーハンドリング」をおこなう際に使うアクティビティです。
例えばWebシステムへのログイン処理に失敗した場合にエラーメッセージやスクリーンショットを取得したり、再度ログインを試行するなどのリトライ処理を実装することができます。

 

「トライキャッチ」アクティビティの基本的な使い方

①アクティビティパネル上の検索欄に「トライキャッチ」と入力・検索し、デザイナーパネル上に配置する

トライキャッチと入力

②エラーハンドリングを実施したい処理を「Try」の中に移動する
・「トライキャッチ」アクティビティは「Try」「Catches」「Finally」の三階層で成り立っています。

Tryの中に移動

 

※また、「Try」の中に配置したアクティビティを選択した状態で「ctrl+t」を押すことでも、「トライキャッチ」の作成が可能です。(=選択したアクティビティが「Try」の中に移動します。)

 

③「Catches」内に、「Try」内でエラーが発生した際におこなう処理を実装する

・「Add new cath」をクリックするとエラーの種類が表示されるので、キャッチしたいエラーを選択します。
その後、「Catches」の選択したエラー名が表示されている箇所にそのエラーが発生した場合の処理を配置します。

「Try」内でエラーが発生した際におこなう処理を実装

「Try」内でエラーが発生した際におこなう処理を実装

「Try」内でエラーが発生した際におこなう処理を実装

 

③「Finally」内に、「Try」内のエラー発生有無に関わらず、実行した処理を実装する

実行した処理を実装

・「トライキャッチ」アクティビティは基本的に以下いずれかのパターンで実行されます。

パターン①:「Try」→「Catches」→「Finally」
→「Try」内でエラーが発生した場合

パターン②:「Try」→「Finally」
→「Try」内でエラーが発生しなかった場合

 

しかしながら、例外的なパターンとして、「Catches」の中でエラーが発生した場合「Finally」内の処理は実行されず、以下のような順序で処理されます。

パターン③:「Try」→「Catches」→エラー終了
→「Try」内でエラーが発生した後、「Catches」内でエラーが発生した場合

 

そのためCatches内に、失敗する可能性がある処理を実装することは推奨しません。

 

「スロー」アクティビティの基本的な使い方

「スロー」アクティビティは、発生させたいエラーを意図的に発生させることができます。

※()にエラーメッセージとして出力したい文字列を入力することができる。

「スロー」アクティビティの基本的な使い方

 

「再スロー」アクティビティの基本的な使い方

ログを出力する処理や、エラー出力をおこなう処理が上位の「トライキャッチ」に存在し、現在の「トライキャッチ」アクティビティでは例外を受け止めるのみとしたい場合、再スローアクティビティを使用することで上位の「トライキャッチ」のCatchesでエラー時の処理をおこなうことができます。

※「スロー」アクティビティとの違いは、「スロー」アクティビティは任意の箇所で任意の種類の例外を発生させることができるアクティビティで、「再スロー」アクティビティはキャッチした例外を再発生させるアクティビティです。

「再スロー」アクティビティの基本的な使い方

 

Exceptionの種類

代表的なExceptionを紹介します。

①Exception

全ての種類の例外

 

②NullReferenceException

本来は何かの値が入っている変数がNullで返されたときに発生する例外

 

③ArgumentException

引数が設定された処理に対して、渡された引数が無効な時に発生する例外

 

④IO.IOException

ファイルやディレクトリ関連で発生する例外

 

⑤InvalidOperatioonException

メソッドの呼び出しに失敗したときに発生する例外

 

「トライキャッチ」アクティビティの活用事例

エラー発生時にスクリーンショットを撮る処理を実装してみます。
このようにエラー時のスクリーンショットを撮ることで、エラーの原因究明、対応も簡単におこなえるようになります。

「トライキャッチ」アクティビティの活用事例

 

「スロー」アクティビティの活用事例

フォルダにファイルが格納されていない場合に、エラーを発生させる処理を実装してみます。

①代入_Inputファイル取得

対象フォルダにあるファイルを配列で取得

保存先:変数(文字列型の配列)
保持する値:system.io.Directory.GetFiles(“対象フォルダのパス”)

 

②条件分岐(if)_Inputファイル存在確認

①で取得された配列の要素数を確認し、要素数が0の場合はInputファイルが存在しないため「スロー」アクティビティでエラーを発生させる

条件分岐(if)_Inputファイル存在確認

条件分岐(if)_Inputファイル存在確認

「再スロー」アクティビティの活用事例

上位のワークフローにエラー時の処理が実装されている場合「再スロー」をおこなうことで上位のワークフローに実装されているエラー処理時の処理をおこなうことができます。

「再スロー」アクティビティの活用事例

「再スロー」アクティビティの活用事例

「再スロー」アクティビティの活用事例