URLLoader的错误处理
private
function loadData():
void
...
{

try ...{
var request:URLRequest = new URLRequest(url);
var loader :URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.load(request);
loader.addEventListener(Event.COMPLETE,completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);

} catch (ioerr:IOError) ...{
//这是做无用功

} catch (err:Error) ...{
trace("发生了未知错误:"+err.message);
}
}

private
function ioErrorHandler(event:IOErrorEvent):
void
...
{
trace("IOError accured");
}

private
function completeHandler(event:Event):
void
...
{
trace("complete");
}
AS3中try...catch 有些微妙。照java的理解方式,发生IOError时可以通过catch块处理。但是AS3中URLLoader.load时不会抛出IOError,而是自动触发一个IOErrorEvent。IOErrorEvent成了必须处理的东西,try...catch却形同虚设。这也许将就了AS的习惯(甚至体现了AS的特色),但一个位置引发的异常非得用处理,的确麻烦。


























