ああああ

エラーを投げる・処理を分ける(例外処理)_UiPath★Tips

エラーを投げる・処理を分ける(例外処理)_UiPath★Tips

UiPathの例外処理(エラー処理)について。

 

シナリオを作成していく中で、「こうなったらエラーにしたい」というシーンがあると思います。

 

例えば、
・社員情報の更新をする際に、社員番号で検索をして結果に何も出てこなかった時にエラーにしたい。
・結果に出てきた名前と、想定していた名前が一致していなかったらエラーにしたい。
・案件を登録する際に、その案件自体が登録されていなかったらエラーにしたい。
・社員に所属部署を設定するのに、その部署がシステム内になかったらエラーにしたい。
とかとか…

しかも、そのエラーメッセージも吐き出すことができたらいいですよね。

 

そんな時に使えるのが、トライキャッチの「ビジネスルール例外(BusinessRuleException)」です。

 

トライキャッチは、ある処理中にエラーになったらCatchesに進むという制御ができるアクティビティです。

通常、Uipathではエラーが出てしまうとそこで処理は中断してしまいますが、トライキャッチのTryに処理を入れることで、中断せずにその後の処理をCatchesで行うことができます。

(トライキャッチについてはUipathのアクティビティガイドをご覧ください。)

 

特に、ビジネスルール例外(BusinessRuleException)の時と、システムエラーの時とで処理を分けたい時は、トライキャッチのCatchesにBusinessRuleExceptionを設定しましょう。

 

Catchesのプルダウンから、UiPath.Core.BusinessRuleExceptionを選択します。ない場合は、Brows for Typesから検索しましょう。

ちなみに、システムエラーの時の処理と分けなくてもいいときは、System.ExceptionのみでOKです。

 

(処理を分けたいときはどちらもCatchesに入れる)

 

これで準備は万端です。

 

ビジネスルール例外の時は、CatchesのBusinessRuleExceptionに、

システムエラーの時は、CatchesのExceptionに進みます。

 

あとは、エラーを処理中に投げるだけです。

 

例えば、あるファイルがなかったらビジネスルール例外を投げたい、とします。

 

「条件分岐(If)」を設置し、例外としたい結果に「Throw」アクティビティを設置。

(条件分岐は、トライキャッチのTryの中の入れましょう。)

 

Throwのプロパティの例外(Exception)欄には、

 

New BusinessRuleException(“エラーメッセージ”)

 

を入力します。

 

これだけ!

 

Throwのプロパティ

 

あとは、トライキャッチのCatchesのBusinessRuleExceptionに、行いたい処理を入れます。

 

エラーメッセージは、

 

exception.Message

 

で、Throwで書いたメッセージが受け取れます。

 

Orchestratorのログに出力したいときは、「LogMessage」アクティビティを設置し、中身に、exception.Messageを記載。

メールで出したいときは、本文に、exception.Messageを記載

というイメージです。

 

 

今回はわかりやすいように、テキストファイルにエラーメッセージを書き出してみます。

 

実行してみましょう。

 

エラーメッセージがテキストファイルに吐き出されました。

 

Try中の条件分岐の結果中にあるThrowから、CatchesのBusinessRuleExceptionに処理が進みましたね。

実際に使用するときはThrowでメッセージを投げる際に、どの処理を行っていたかを判別できるもの(Noとか)を記載するといいでしょう。

 

例外処理は業務の自動化を行っていく上でとても大切な部分です。

人間の頭では状況によって対処を判断し業務を遂行できますが、システムでの自動化はそうはいかず、事前に想定される例外を洗い出し、それに対する対処を行う必要がありますし、それを把握する必要があります。

UiPathではそのような細かい対処が可能ですし、弊社でもそれを想定したシナリオ開発を行いますよ、というお話でした!