いくつかの追加フィールドを含むカスタム例外クラスがあります。これらをメソッドに書き出すようにしたいのですToString()
が、独自に実装すると、ToString()
他の便利なもの(例外タイプ名、内部例外データ、スタックトレースの記述など)が失われます。
ToString()
そのような例外に対して独自のメソッドを実装するための最良の方法/パターンは何ですか?理想的には、既存のメカニズムを再利用する必要がありますが、デフォルトのToString()
実装と同様の方法でフォーマットされます。
更新:カスタムフィールドをbase.ToString()テキストに追加または追加することは、理想的なIMHOではありません。
PimTool.Utilities.OERestServiceUnavailableException: test ---> System.InvalidOperationException: inner message
--- End of inner exception stack trace ---
at PimTool.Tests.Services.OE.OERestClientTests.ExceptionsLogging() in D:\svn\NewPimTool\PimTool.Tests\Services\OE\OERestClientTests.cs:line 178,
StatusCode=0, message='test', requestId='535345'
カスタムフィールドが(潜在的に長い)例外の説明の最後に書き込まれることを意味します。一方、例外タイプは、説明に最初に記述される情報にする必要があります。
更新2:私はこれに対する解決策を実装しました。以下で私自身の答えを探してください。