未记录错误记录错误的事件

时间:2014-03-21 17:02:33

标签: actionscript-3 flash

我希望来自我的应用程序的日志客户端动作错误。我在互联网上做了研究,发现我应该使用uncaughtErrorEvents来做这件事。

我试过这个。

public class Main extends MySprite 
{

    public function Main () 
    {   

        loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler);

        var o : Object = null;
        trace(o['something']);              
    }

   private function uncaughtErrorHandler(event:UncaughtErrorEvent):void
   {
        trace("WHAT");
        if (event.error is Error)
        {
            var error:Error = event.error as Error;
            // do something with the error
            trace(">>>>> ERROR " + error);
        }
        else if (event.error is ErrorEvent)
        {
            var errorEvent:ErrorEvent = event.error as ErrorEvent;
            // do something with the error
            trace(">>>>>> ERROR EVENT " + errorEvent);
        }
        else
        {
            // a non-Error, non-ErrorEvent type was thrown and uncaught
            trace(">>>>>> REALLY NOTHING ");
        }
    }
}

比我通过访问代码中的空对象属性来模拟错误,我的游戏崩溃了,我没有从uncaughtErrorEvent监听器获得任何跟踪消息。

我使用正确的方法吗?或者我应该使用不同的方法?我做错了什么?

我的flash版本也是11.1。

感谢您的回答

1 个答案:

答案 0 :(得分:0)

崩溃你是指带有关于错误的堆栈信息的窗口?使用Event对象中的preventDefault方法,此窗口不会显示:

private function uncaughtErrorHandler(event:UncaughtErrorEvent):void{
     event.preventDefault();
     trace("WHAT");
     // ...
}