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());

我应该注意将 looong 字符串放入异常中确实会减慢速度,但这还不错。

一个字符串可以在这里多长时间的参考。

于 2013-09-20T14:10:03.883 回答