Exception.Dataプロパティについて

UiPath Studio 2025.0.161 community editionのユーザです。

Copilotで調べたところ、Exception変数のDataプロパティは、エラー発生時にカスタム情報(キーと値のペア形式)をIDictionaryに追加できると書いてありましたが、いまひとつイメージが湧きません。

2点質問をさせてください。

1.例えば、下記のコードですと、例外をスローする際に、“ErrorCode”,"Details"を開発者が手作業で(キーと値のペア形式)をIDictionaryに自分で追加するイメージですが、
この認識でよろしいでしょうか。

2.1.の回答がYESの場合、空のIDictionaryを最初に作成する必要がありますが、どのようなコードになりますでしょうか。


### **使用例**
#### **1. 例外にカスタムデータを追加**
`Throw`アクティビティを使用して例外をスローする際、`Data`プロパティにカスタム情報を追加します。

```vb
Try
    ' 新しい例外を作成し、データを追加
    Dim customException As New Exception("カスタム例外が発生しました")
    customException.Data("ErrorCode") = "E1001"
    customException.Data("Details") = "プロセス中に予期しないエラーが発生しました"
    Throw customException
Catch ex As Exception
    ' キャッチした例外からデータを取得
    Log Message: "例外メッセージ: " & ex.Message
    If ex.Data.Contains("ErrorCode") Then
        Log Message: "エラーコード: " & ex.Data("ErrorCode").ToString()
    End If
    If ex.Data.Contains("Details") Then
        Log Message: "詳細: " & ex.Data("Details").ToString()
    End If
End Try

コードの通りなので問題ないと思います。

2.1.の回答がYESの場合、空のIDictionaryを最初に作成する必要がありますが、どのようなコードになりますでしょうか。

Exceptionのインスタンスが生成された時点で、当該プロパティは空の状態で存在していますので、新たにインスタンスを生成する必要はありません。

回答ありがとうございます。
2点ご教示ください。
1.Exceptionのインスタンス内部にIDictionaryが内包されているという認識で合っていますか?
2.IDictionaryから追加したデータを取り出すサンプルコードをご教示ください。

Exceptionクラスの属性の一つとしてDataプロパティがあります。
DataプロパティはIDictionary型です。

このあたりの概念を正しく理解したいのであれば、オブジェクト指向を学んだ方が良いです。

2.IDictionaryから追加したデータを取り出すサンプルコードをご教示ください。

最初のPOSTでご自身でupしたコードの通りですが

varExeption.Data("ErrorCode") = "E1001"

のようにセットしたものは

varException.Data("ErrorCode")

で取得できます。ただしObject型で返るので、必要に応じて適切な型に変換します。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.