4

再現が難しいバグがあります。また、ログ ファイルの書き込みはセキュリティ上の責任があると聞いています。だから私は例外でできる限り多くをキャプチャしたい.

C# 例外の最大長を示す場所が見つかりません。

XML メッセージ (1 または 2K) とローカル データ モデル (2k 程度) を貼り付けたいと思います。

限界は何ですか?ベストプラクティスのアドバイスはありますか?

4

1 に答える 1

5

本番環境で使用できるので、Trace.Information、Trace.Error を使用することをお勧めします。

実稼働環境にない場合は、Debug.Write または Console.Write が最善の策であると思います。

例外メッセージの最大長は、文字列の最大長 (Int32.MaxValue または 2,147,483,647) です。

これが私のテストハーネスです:

StringBuilder sb = new StringBuilder();
string _loremIpsum = @"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";

long _counter = 5000;
while (_counter > 0)
{
    sb.Append(_loremIpsum);
    if (_counter % 100 == 0)
    {
        Console.Write(".");
    }
    _counter--;
}
Console.WriteLine("Length: " + sb.Length);

throw new Exception(sb.ToString());

長い文字列を例外に入れると、実際には処理が遅くなりますが、それほど悪くはありません。

文字列の長さの参照はこちら.

于 2013-09-20T14:10:03.883 に答える