2022.02.17
UiPath RPA

【UiPath】エラーをコントロールしよう

【UiPath】エラーをコントロールしよう

UiPathでロボットを作ってみたはいいものの、実際に動かしてみると頻繁にエラーが出て止まってしまう…

なんてことはありませんか?

RPAに限らずシステム開発においてエラーハンドリングの仕方というのはとても大事なものです。

そこで、今回はUiPathのエラー処理方法のひとつ「トライキャッチ(Try Catch)」アクティビティについてご紹介します。

トライキャッチ アクティビティ

「トライキャッチ」アクティビティとはエラー処理の際に使われる基本的なアクティビティです。

Try – Catches – Finally の3つの要素で構成され、それぞれのフィールドに必要に応じたアクティビティを配置します。

■Try

Tryフィールドには通常と同じようにシーケンスや、フローチャートを配置し、その中に複数のアクティビティを設定できます。

このTryフィールドにエラーが発生しうる処理を配置することで、そのエラーの対処をすることができます。

■Catches

CatchesフィールドではTryで発生したエラーのうち、どのようなエラーを受け止めるかを設定することができます。

Exceptionの種類は様々です。代表的なものをご紹介します。

・system.ArgumentException

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

・system.NullReferenceException

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

・System.IO.IOException

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

・system.InvalidOperationException

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

・System.Exception

全ての種類の例外を受け止めることができます。

Tryで発生するエラーが予想できない場合は、基本的に「System.Exception」を選択しましょう。

■Finally

FinallyフィールドではTry ~ Catchesの一連の処理が成功・失敗したかに関わらず、必ず実行したい処理を設定します。

例えば、処理の最後にコメントを残したい場合や、Tryフィールドで使用したアプリケーションを終了する必要がある場合などに記述します。

■トライキャッチの利点について

 

発生する例外が想定可能なものや、短いシーケンスであればそこまでエラー処理について細かく考える必要はありません。ですが、想定外のエラーが発生したとき、また長大なシーケンスや複雑なフローチャートを作成したときは「トライキャッチ」アクティビティを利用することでエラーを適切にコントロールすることができます。

Try Catch の活用例

■ビジネス例外処理

 

ビジネス例外とは、アプリケーションエラーなどによって発生する例外ではなく、業務の処理上例外として処理を進めたい場合に必要となる例外です。

 

こちらは、業務の処理上のエラーなので、「トライキャッチ」アクティビティなどを利用して、意図的に例外を発生させる必要があります。その際には「スロー」アクティビティを使用します。

「スロー」アクティビティにてビジネス例外を発生させる

Catchesにてビジネス例外のログを表示

■スクリーンショットの撮影

エラーが発生した直後の画面のスクリーンショットがあればエラーの原因究明と対応が楽になります。そういった状況を作るために「トライキャッチ」アクティビティを利用してエラー発生時にスクリーンショットを撮影するという方法もあります。

■上位のワークフローで例外処理を行う

 

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

いかがでしたか?

今回はUiPathのエラー処理方法のひとつ「トライキャッチ」アクティビティについて解説を行いました。

「トライキャッチ」アクティビティを駆使することでエラーが発生した処理がわかるだけでなく、例えば「Excelで100件の処理を進めている最中の59件目で処理が止まった。」や「データスクレイビング処理中にWebページの8ページ目でエラーが発生した。」というようなより詳細なエラー内容を知ることができます。また、活用例と組み合わせることでビジネス例外が発生したが、ログを出力するに留めて、後続の処理を続行する、といったロボットの作りにすることも可能です。

エラーが発生しても途中で止まらないロボットを作ったり、作成したロボットのメンテナンスをより簡単にしたりするためにも、エラーのコントロール方法を覚えておきましょう。