As3捕捉全局异常
从FP10.1开始AS3可以捕获全局异常:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.UncaughtErrorEvent;
/**
* ...
* @author me
*/
public class Main extends Sprite
{
public function Main()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
if (loaderInfo)
{
loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onError);
}
var obj:Object = {};
trace(obj.obj.obj);
}
private function onError(e:UncaughtErrorEvent):void
{
var errorMsg:String = "未捕获错误:";
if (e.error is Error)
{
errorMsg += "errorId = " + e.error.errorID + ", errorName = " + e.error.name + ", errorMessage = " + e.error.message;
}
else
{
errorMsg += "errorId = " + e.errorID;
}
trace(errorMsg);
}
}
}