flex将运行时错误堆栈跟踪写入文件

时间:2010-09-08 09:59:47

标签: flex flex3 air flex4

我正在开发Flex + AIR应用程序。在使用Flash Builder进行调试时,有时会出现运行时错误对话框,其中包含'continue'和& '解雇所有'按钮。但是当我发布一个版本(.air)&安装后运行应用程序。然后我没有在发布版本中获得相同的对话框。

我需要跟踪这些类型的运行时错误,因为我试图将它们作为日志写入文件。

我尝试过使用try catch&写入catch块中的文件,但我无法获得任何未处理的异常或运行时错误。

有没有办法实现它?

提前致谢。

3 个答案:

答案 0 :(得分:0)

仅当您使用Flash Player的调试版时才会显示错误对话框。

您可以注册UncaughtErrorEvent处理程序并使用tracelogging API记录错误:

private function onApplicationComplete():void
{
    loaderInfo.uncaughtErrorEvents.addEventListener(
        UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
}

private function onUncaughtError(event:UncaughtErrorEvent):void
{
    trace(error);
}

答案 1 :(得分:0)

您无法使用Flash调试播放器调试已编译的AIR应用程序,因为在进行发布版本时会删除调试信息。您可以使用De MonsterDebugger之类的内容来输出错误信息,但通常在发布版本中显示错误信息是个坏主意。你应该在发布之前进行测试。

答案 2 :(得分:0)

在Flash 11.5+中,现在可以使用error.getStackTrace()在运行时获取堆栈跟踪,请参阅http://renaun.com/blog/2012/09/getting-the-stack-trace-in-a-release-flash-player/

它在Air应用程序中为我工作。