【UiPath】エラーハンドリングの強い味方「TryCatch」

RPAに限らず、システム開発においてエラーハンドリングはとても重要です。

UiPathにはこのエラーハンドリングにうってつけのアクティビティが存在します。それが「TryCatch」アクティビティです。

UiPathでのロボット作成において使わない場面はないといっても過言でないアクティビティです。「うん。うん。」とうなずきながら読んでる方もいるのではないでしょうか。

本記事では、TryCatchアクティビティの基本的な使い方を使用例を用いて説明していきます。

動画

記事の内容を簡単な動画としてYouTubeにアップしています。

本記事では、この動画の内容を補足する形でより細かく説明しています。

↓実際の操作画面を確認したい方は是非ご覧ください。

TryCatchとは

UiPathのアクティビティの一つでエラー発生時の処理に用います。

◇ TryCatchの仕様①~Try、Catch、Finally~

TryCatchアクティビティは「Try」、「Catch」、「Finally」の3つのパートで構成されています。

Try内でエラーが発生した場合、Catch内の処理が実行され、最後にFinally内の処理が実行されます。

Try

基本処理をTry内に作成します。アクティビティにフォーカスした状態で「Ctrl+T」により選択していたアクティビティがTryに含まれた状態でTryCatchを生成することもできます。

Catch

エラー発生時の処理をCatch内に作成します。

Exception選択リストから、キャッチするエラーの種類を選択します。

選択したエラー以外が発生した場合は、Catch内には入らず従来通りのエラーとなります。「If」アクティビティのような感じですね。

特別な理由がない限り、すべてのエラーをキャッチする「System.Exception」でよいでしょう。

Catch部は異なるエラー条件で複数設定することが可能です。エラーの内容ごとに異なる処理をさせたい場合に用いるでしょう。

Finally(任意)

エンド処理をFinally内に作成しますが、設定しなくてもかまいません。

◇ TryCatchの仕様②~処理が中断しない~

処理中ににエラーが発生した場合、エラーがポップアップで表示されロボは停止します。

しかし、TryCatchを用いるとエラーが発生しても中断しないようなロボが作成可能です。

これは、エラー発生時にCatch内で正常な処理としてエラーを受け取るためです。

多数のデータをループ処理する際に、途中でエラーが発生しロボが中断するのはとても辛いですよね。

ループ内の処理を丸々Tryに入れることで、いくつかのデータでエラーが起きたとしても最後までループ処理を実行してくれます。

使用例

TryCatchの簡単な使用例を紹介します。

作成したシナリオは、インプットダイアログで数字の入力を求め、その後、入力された数字の3倍の数値を出力するというものです。

◇ TryCatchなし

これが実際のシナリオになります。

実行してみます。

指示通り数字を入力した場合、3倍の値を出力しています。

今度はエラーを発生させてみます。

エラーが発生し、処理が中断されました。

(入力されたString型変数からInteger.ParseによってInt型に型変換しているため、数字ではない文字列が入力された場合にエラーになります。)

◇ TryCatchあり

これがTryCatchの中に入れた状態です。

Catch内では、発生したエラーの通知処理を行っています。

発生したエラー内容はexception(エラー内容が格納された変数).Messageで取得できます。

実行し、エラーを発生させます。すると、

このように、Catch内の処理が実行され、全体として正常に処理が終了します。

終わりに

いかがだったでしょうか。

基本的なことしか説明できませんでしたが、「TryCatch」アクティビティの利便性について少しは理解いただけたのではないでしょうか。

TryCatchを使う利点

・エラー毎に別の処理を行える

・エラーが起きても処理は中断されない


sweeep|請求書AI-OCR

請求書の会計処理を自動化します
請求書AI-OCR「sweeep」

面倒な請求書の会計処理をAIで自動化。100枚をたった3分で処理できます。月末に貯まった請求書を一掃しましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

ハイダックと申します。以前UiPathによる自動化業務に従事しておりました。現在は、趣味でアプリ連携やロボット作成を行いながらそこで得た体験や知識をTwitter(@Hiduac)やブログにて発信しております。自動化相談や技術相談、UiPathによるPoC等、大募集しておりますのでお気軽にご連絡ください。