UiPath スロー アクティビティ
スローは任意のタイミングで例外(エラー)を発生させるアクティビティです。
この記事では、その使い方と再スローとの違いを紹介します。
アクティビティの使い方
スローはトライ キャッチのTryフィールドに設置します。
(トライ キャッチは必須ではないですが、
スローを使うとキャッチする場合が殆どのため)
![スローをトライ キャッチのTryフィールドに設置](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/10/image-53-1024x653.png)
例外プロパティに発生させる例外を指定します。
その状況に合わせた例外を設定しますが、多くの場合、業務ルール上のエラーである
ApplicationExceptionを使用することになります。例外は下記のように設定します。
new ApplicationException ("エラーメッセージ" )
![プロパティの設定例](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/01/image-222.png)
今回は入力ダイアログで金額をキーボード入力し、
条件分岐の判定の結果、0以下の金額が指定された場合は
例外(ApplicationException)を発生させます。
![入力値が0以下の場合に例外を発生させるシーケンス](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/01/image-223.png)
例外のメッセージにはこのように異常の内容と入力された金額を設定します。
![例外の設定例](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/01/image-224.png)
発生させたApplicationExceptionはCatchesで変数exceptionとして受け取り
メッセージボックスにエラーメッセージ (exception.Message) を表示します。
ApplicationExceptionは初期状態では表示されないので
「型の参照」から選択する必要があります。
![Catchesでエラーメッセージを表示する例](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/01/image-225.png)
このツールを使用し、0以下の金額を入力した場合、
ApplicationExceptionが発生し、エラーの内容がメッセージボックスに表示されます。
![エラー表示例](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/01/image-226.png)
再スローとの違い
ほぼ同じ動作をするのですが、役割が異なります。
スローはシーケンス内の任意個所で任意の種類の例外を発生させるアクティビティです。
意図した場所で意図したエラーを発生させるために使用します。
キャッチした例外を再発生させるアクティビティです。
プロパティ
共通
![共通・表示名プロパティ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/01/image-228.png)
表示名はデザイナーパネルに反映されます。
その他(例外)
![その他・例外プロパティ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/01/image-227.png)
new を使用して発生させる例外とエラーメッセージを指定します。
Catchesの中で別のトライ キャッチに例外を渡したい場合は
別途、再スローアクティビティを使用します。
その他(プライベート)
UiPathのログに引数や変数の値が表示されるかを指定します。
機密性の高い情報を取り扱う場合にのみチェックする必要があります。
![プライベートのキャプチャ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2019/10/image-246.png)