gorby
(gorby)
June 2, 2023, 7:56am
1
こんにちは。
UiPath Studio 2023.4.1 Enterpriseを利用中です。
添付画像のMain.xamlからProcess.xamlを呼出して指定フォルダのファイルを1個ずつ取り出して処理する繰り返し処理を実現しています。
Try Catchアクティビティは、Main.xamlを囲むのと、1件分の業務処理(添付画像黒丸)の中でProcess.xamlを囲むのに使っています。
例外処理はErrorHandler.xamlという別WFを作成して、Try CatchアクティビティのCatch blockから呼び出す形を取っていますが、下記の2案のどちらにするか迷っています。
詳しい方、どちらが良いかアドバイスをお願いします。
案1:2個のTry CatchアクティビティのCatch blockから同じErrorHandler.xamlを呼び出す。
案2:Main.xamlのTry CatchアクティビティのCatch blockからはErrorHandler.xamlを呼び出すが、Process.xamlのCatch blockからは再スローする。
gorby:
こんにちは。
UiPath Studio 2023.4.1 Enterpriseを利用中です。
添付画像のMain.xamlからProcess.xamlを呼出して指定フォルダのファイルを1個ずつ取り出して処理する繰り返し処理を実現しています。
Try Catchアクティビティは、Main.xamlを囲むのと、1件分の業務処理(添付画像黒丸)の中でProcess.xamlを囲むのに使っています。
例外処理はErrorHandler.xamlという別WFを作成して、Try CatchアクティビティのCatch blockから呼び出す形を取っていますが、下記の2案のどちらにするか迷っています。
詳しい方、どちらが良いかアドバイスをお願いします。
案1:2個のTry CatchアクティビティのCatch blockから同じErrorHandler.xamlを呼び出す。
案2:Main.xamlのTry CatchアクティビティのCatch blockからはErrorHandler.xamlを呼び出すが、Process.xamlのCatch blockからは再スローする。
UiPath Studioでの例外処理の方法について、以下の2つの案についてのアドバイスをいたします。
案1:2個のTry CatchアクティビティのCatch blockから同じErrorHandler.xamlを呼び出す。
この案では、Main.xamlとProcess.xamlそれぞれのTry CatchアクティビティのCatch blockから同じErrorHandler.xamlを呼び出します。この方法は、Main.xamlとProcess.xamlの両方で発生する例外を一元化して処理することができます。ErrorHandler.xaml内で例外の種類に応じた処理を行うことができるため、エラーハンドリングを統一的に行いたい場合に適しています。
案2:Main.xamlのTry CatchアクティビティのCatch blockからはErrorHandler.xamlを呼び出すが、Process.xamlのCatch blockからは再スローする。
この案では、Main.xamlのTry CatchアクティビティのCatch blockからErrorHandler.xamlを呼び出し、Process.xamlのCatch blockでは例外を再スローします。この方法は、Main.xamlとProcess.xamlで例外処理のロジックを分けたい場合に適しています。Main.xamlで発生した例外に対してはErrorHandler.xamlで処理を行い、Process.xaml内で発生した例外は上位のワークフローに伝播させることで、個別に例外処理を行うことができます。
どちらの案が良いかは、プロジェクトの要件や設計により異なります。もしMain.xamlとProcess.xamlで共通の例外処理ロジックを使用したい場合は、案1が適しています。一方、Main.xamlとProcess.xamlで異なる例外処理ロジックを適用したい場合は、案2が適しています。
プロジェクトの要件やデザインに合わせて、適切な例外処理の方法を選択してください。また、どちらの方法を選んでも、例外処理の可読性や保守性を高めるために、ErrorHandler.xaml内で詳細な例外処理を行うことをおすすめします。
Anil_G
(Anil Gorthi)
June 2, 2023, 9:40am
3
@gorby
In the errorhandler.xaml …you are using terminate workflow …so if you use that then in both proposal 1 and 2 it epuld fail the same way because terminate will stop the bot anyways…and wont go forward…
You will see difference only when you remove terminate workflow and proposal 2 will suite then…
Hope this is clear
Cheers
gorby
(gorby)
June 6, 2023, 5:23am
4
今回の場合、Process.xamlの上位のワークフローはMain.xamlのため、Process.xamlで発生した例外処理情報を再スローしても、結局、ErrorHandlerに処理が渡るため、ご提案いただいた両案とも処理は同じになります。この場合、どちらが良いかご提案がありますか?それともどちらでも良いのでしょうか?