こんにちは、Takaです。
今回は UiPath の Try Catch を使った例外処理について基本的な操作を学習します。
UiPath で例えば以下のようなシーケンスを作成します。事前処理と後続処理の間に、エラーが起きそうな代入処理があります。
このシーケンスを実行したら、以下のようなエラーのダイアログが表示されます。
通常、このようなエラー検知からのダイアログ表示は Try Catch で例外を検知して、Throw でユーザーに知らせるという作法が必要なのですが、UiPath は問題のある Try Catch なしでも知らせてくれます。
そのためこの投稿を作成している時、僕は混乱しました。
Try Catch が何をするかは理解できたけど、”なぜ UiPath で必要なのか?” が
自分の中で腑に落ちないので悶々としてしまい、どうも記事が進まない..
そこで先輩エンジニアの方に相談してみました。すると..
プログラミングや新しいスキルを習得する際、気軽に経験者に聞ける環境ってものすごく大切だと思います。独学には限界があるし、あまり効率的ではない。
そして “学習を継続できるかどうか” というポイントにもなります。僕も何度も経験してますが、一度ドツボにはまるとなかなか抜け出せない。そして腑に落ちないことが多くなると嫌になって辞めてしまうし、学習することが苦痛になってしまう。
そういったドツボにはまった時ほど、経験者の一言は貴重ですね。本当にありがたい。
さてさて、スッキリしたので Try Catch を UiPath で利用する手順をさくっとまとめていきます。
UiPath のプロセスでエラーが発生しそうな処理を行う場合、その処理がエラーが出ても正しく処理をするために Try Catch を利用します。
「トライキャッチ」というアクティビティを追加します。「Try」で処理を行い、もしエラーが発生したら「Catches」でキャッチをして例外処理を行うという仕組みです。
「Try」の中に先ほどのエラー処理を追加します。
例外処理を行う際は、「Exception」で処理を選択します。.Net の例外処理を選択するようになっています。ここでは “System.Exception” を選択しました。
Exception の右側の “exception” は例外処理の名前です。後述の Terminate や Throw の処理でこの名前を使います。
ここから「Try」で処理して「Catches」で検知した例外をどのように処理するか検討します。エラー内容をユーザーに知らせるのであれば Throw 処理、有無を言わさずプロセスを終了するなら Terminate 処理を設定します。
「Catches」で検知した例外をユーザー側に周知するために Throw 処理を使います。Throw でどのような例外が発生したかをダイアログで知らせます。
プロパティで「例外」に「Catches」の “exception” を入力して、「表示名」に適切な名前を入力します。
この状態で実行してみます。すると、事前処理実行後に Throw で処理された以下のようなダイアログが表示されます。
「Try」でのエラーが処理が全体に影響するので、プロセスを終了させる必要があれば「ワークフローを終了」という Terminate 処理でプロセスを終わらせることができます。
「Catch」に追加します。プロパティで「例外」とある箇所には、先ほどの Exception の名前を入れます。
ここで例えば「Try」の処理がエラーとなった場合、実行すると「ワークフローを終了」が処理を終了させて、以下のようなダイアログを表示します。
このように有無を言わさずエラー発生時にプロセスを終了させたい場合は「ワークフローを終了」を使います。
基本中の基本の内容だけまとめましたが、例外処理については UiPath の公式ページ Try Catch を見ると、サンプルのプロセスでもう少し高度な Try Catch の処理をやっているようです。後でやってみよう。何かあれば追記します。
それでは、今回はここまで!