exception.Dataに関する質問

こんにちは
UiPath Studio 2025.0.161 community editionのユーザです。

1.やりたいこと

exception変数のDataプロパティの検証をするため、下記のIDictionary変数dic_Messageの構築ができたので、ビジネス例外をスローする際に、exception.Dataに dic_Message(“Code”)="A002"を設定したい。

IDictionary変数dic_Message

[Code,Level,Message
A001,Error,RPA実行異常終了しました。
A002,Error,異常終了:UiPath.Presentations.Activitiesファイルのパスが無効です。
A003,Info,ErrorHandler_Terminate:Ended
A004,Info,ErrorHandler_Terminate.xaml - ワークフロー ファイルを呼び出し: ワークフローを終了します。
A005,Info,InputFileExistingCheck:Started
A006,Info,InputFileExistingCheck:Ended

2.悩んでいること

2点ご教示ください。

1.現在ビジネス例外をスローする際に、
New BusinessRuleException
を実行しているが、これをどう修正すれば、exception.Dataに dic_Message(“Code”)="A002"を設定できますか?

2.Catchブロックで1.のエラーを受け止めた際に、

Logmessageアクティビティで、
"異常発生:" + exception.Data("Code").ToString
と記入すれば、

"異常発生:Error,異常終了:UiPath.Presentations.Activitiesファイルのパスが無効です。"

とログを記録できるでしょうか?

Hi @gorby

  1. Throwing BusinessRuleException with Data:

    dic_Message = New Dictionary(Of String, Object) From {
        {"Code", "A002"},
        {"Level", "Error"},
        {"Message", "異常終了:UiPath.Presentations.Activitiesファイルのパスが無効です。"}
    }
    Throw New BusinessRuleException("Your message") With {.Data = dic_Message}
    
  2. Logging the exception Data in Catch block:

    Try
        ' Your logic here
    Catch ex As BusinessRuleException
        If ex.Data.ContainsKey("Code") Then
            LogMessage("異常発生: " + ex.Data("Code").ToString())
        End If
    End Try
    

Exception.Dataに等式をセットすることはできません。

おそらく実現したいことは下記と思います。

こんばんは
ご提示いただいたコードで期待通りの動きをしました。ありがとうございました。
1点質問をさせてください。
CatchブロックのLogMessageアクティビティで、

”異常終了:” + dic_Message(exception.Data("Code").ToString)

と書いたら静的エラーになりました。dic_Message(exception.Data("Code").ToString)の前後に別の文字列を追加する方法をご教示ください。

Could you pls try this,

To concatenate additional strings before and after the dic_Message(exception.Data("Code").ToString) in the LogMessage activity, you can do the following:

"異常終了: " & dic_Message(exception.Data("Code").ToString) & " - Additional String"

dic_MessageがDictionary<string,Object>型であれば、dic_Message(exception.Data(“Code”).ToString)はObject型で返るので、この場合

"異常終了:" + dic_Message(exception.Data("Code").ToString).ToString

のように .ToStringを付加する必要があります。

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