因此,我尝试在C#Windows应用商店应用中测试未处理异常的日志记录。我发现有特别大的堆栈跟踪或异常消息但是,我丢失关键信息到任意512个字符的限制。
所以,我的处理程序是这样的:
void App_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
string tmp = e.Message;
var x = e.Exception;
}
当然,由于跨越语言边界的异常,提供的异常对象几乎无用。它携带的唯一信息是" System.Exception类型的异常发生"。没有堆栈跟踪或任何东西。幸运的是,还有Message
属性,其中包含用于记录异常的大部分相关信息。
但是,它限制为512个字符!?所以,这是一个例子:
使用此:throw new Exception(new string('c', 480));
我将此信息作为消息:
System.Exception的: cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 在App2.A
注意它被截断,正好在512个字符的边界处。这是一个短的异常消息的样子
System.Exception:cccccccccc at App2.App.OnLaunched(LaunchActivatedEventArgs e)
有人可以向我解释为什么在应用程序中跟踪未处理错误的唯一有用字段是出于某种原因仅限于非常少量的文本?!