ああああ

(例外処理)エラーのあったDisplayNameを表示する_UiPath★Tips

(例外処理)エラーのあったDisplayNameを表示する_UiPath★Tips

RPAのシナリオ開発や運用の中で重要となってくるのがエラーの察知と特定です。

エラーの察知についてはまた別の記事で書くことにして、今回はエラー内容の特定について記載します。

 

エラーハンドリングに有効なアクティビティに、「トライキャッチ(Try Catch)」があります。

実際の使い方については、UiPathのアクティビティガイドをご覧ください。

 

トライキャッチは、Tryで行う処理中にエラーが発生したら、Catchesに移行→最後にFinallyというもの。

エラー内容の特定方法としては、エラーになった場合の処理=CatchesのExcptionに「ログメッセージ(Log Message」を配置し、Orchestratorのログに吐き出したり、エラーメッセージをエクセルやCSVに書き留めたり、エラー内容をメールで通知する…などがあると思います。

そしてエラー内容を書き出す際に使うのがこちら。

 

exception.Message
エラーメッセージを取得

exception.Source
エラーのあったアクティビティのDisplayNameを取得

exception.GetType
エラーのタイプを取得

 

サンプルでこのように作ってみます。

 

 

わざとエラーが出るような処理をTryに置き、CatcheのExceptionの中にLog Messageを設置。Log Messageには

 

“システムエラーが発生しました” + exception.Message + vbCrlF + exception.Source + vbCrlF + exception.GetType.ToString

 

を入力。※vbCrlFは改行コードです。

 

結果がわかりやすいように、「テキストファイルを書き込む(Write Text File)」をその下に設置して同じ内容を書き込みました。

実行してみます。

結果がこちら。

 

システムエラーが発生しましたCannot find the UI element corresponding to this selector: <html app=’chrome.exe’ title=’乗換案内、時刻表、運行情報 – Yahoo!路線情報’ /><webctrl id=’sfrom’ tag=’INPUT’ />
System.Activities
UiPath.Core.SelectorNotFoundException

 

 

exception.SourceでエラーのあったアクティビティのDisplayNameが取得できる…はずですが、DisplayNameが入っていないじゃないですかー…!

 

実は、トライキャッチのTryに直接処理内容を入れると、exception.SourceでアクティビティのDisplayNameが拾えず、別xamlで処理をし、Tryでそのファイルを呼び出せば拾えるようです。なんと…

 

試しに同じTryを別xamlに切り出し、Tryで呼び出してみました。

Catchは同じです。(わかりやすいようにテキストファイル名は分けます)

実行した結果がこちら。

システムエラーが発生しましたCannot find the UI element corresponding to this selector: <html app=’chrome.exe’ title=’乗換案内、時刻表、運行情報 – Yahoo!路線情報’ /><webctrl id=’sfrom’ tag=’INPUT’ />
駅名を入力
UiPath.Core.SelectorNotFoundException

 

 

「駅名を入力」というDisplay Nameが表示されていますね!

 

以上、トライキャッチを使う時は、別xamlで処理を呼びだすと、exception.SourceでエラーのあったDisplay Nameが拾えますよ、ということでした。

拾えさえすれば、メールで送るなり、ログに出力するなり、CSVに書き溜めるなり好きにできますし、

エラーのあった箇所を早く特定できることは運用を行っていく上でも大切です。