我希望来自我的应用程序的日志客户端动作错误。我在互联网上做了研究,发现我应该使用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。
感谢您的回答
答案 0 :(得分:0)
崩溃你是指带有关于错误的堆栈信息的窗口?使用Event对象中的preventDefault
方法,此窗口不会显示:
private function uncaughtErrorHandler(event:UncaughtErrorEvent):void{
event.preventDefault();
trace("WHAT");
// ...
}