Exception 为什么WinRT将未处理的异常消息/堆栈跟踪限制为512个字符?

Exception 为什么WinRT将未处理的异常消息/堆栈跟踪限制为512个字符?,exception,logging,windows-runtime,windows-store-apps,unhandled-exception,Exception,Logging,Windows Runtime,Windows Store Apps,Unhandled Exception,因此,我尝试在一个C#Windows应用商店应用程序中测试未处理异常的日志记录。我发现有特别大的堆栈跟踪或异常消息,但是,我丢失了一些任意512字符限制的关键信息 因此,我的处理程序如下所示: void App_UnhandledException(object sender, UnhandledExceptionEventArgs e) { string tmp = e.Message; var x = e.Exception; } 当

因此,我尝试在一个C#Windows应用商店应用程序中测试未处理异常的日志记录。我发现有特别大的堆栈跟踪或异常消息,但是,我丢失了一些任意512字符限制的关键信息

因此,我的处理程序如下所示:

    void App_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        string tmp = e.Message;
        var x = e.Exception;
    }
当然,由于异常跨越了语言边界,所以提供的异常对象几乎是无用的。它携带的唯一信息是“发生了System.exception类型的异常”。没有堆栈跟踪或任何东西。幸运的是,还有
Message
属性,其中包含记录异常的大部分相关信息

但是,它被限制为512个字符!?下面是一个例子:

使用这个:
抛出新异常(新字符串('c',480))我得到的信息如下:

系统。例外情况: CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 约2.A

请注意,它在512个字符的边界处被截断。下面是一条简短的异常消息

系统。例外情况:中交at 附件2.仅启动的附件(启动ActivatedEventargs e)


有人能给我解释一下为什么在你的应用程序中为跟踪未处理的错误而提供的唯一有用的字段出于某种原因被限制在非常少量的文本中吗

您是否可以只查看传递的实际
异常
,而不是仅依赖
消息
属性(因为它是
异常
实例)?如果是您正在创建的
异常
,您还可以添加其他属性。@wiredparie传入的异常不是引发的异常。stack trace属性为null,消息无效且通用。对此类问题的常见答案通常是显而易见的:。