【问题标题】:Error Handling in flexflex 中的错误处理
【发布时间】:2012-03-01 16:43:25
【问题描述】:

在名为 Error #2044: Unhandled IOErrorEvent: 的错误提示中加载文件。 text=Error #2124: 加载的文件是未知类型。 我需要做的是当这个错误发生时我想调用一个函数。 所以我把导致错误发生的代码块放在try catch块中。 但是当发生错误时,它不会被捕获。 下面是sn-p的代码。

try {
    var loader:Loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler);
    loader.loadBytes(fileReferance.data);   
}
catch(err:*) {
    functionTocall(fileReferance);
}

如何处理..

【问题讨论】:

    标签: actionscript-3 apache-flex


    【解决方案1】:

    flash 中有 2 种类型的错误:同步和异步。可以使用try..catch 块处理同步错误。当代码执行失败时,会立即抛出此类错误。但是你不能确切地知道什么时候会抛出异步错误。您正在尝试处理异步错误。这就是为什么你无法以你的方式捕捉它。
    您应该为IOErrorEvent 添加事件监听器。

    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
    ...
    private function onIOError(e:IOErrorEvent) {
        ....
    }
    

    【讨论】:

      【解决方案2】:

      只需添加另一个正在侦听IOErrorEvent 的侦听器:

      var loader:Loader = new Loader();
      loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler);
      loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler);
      loader.loadBytes(fileReferance.data);
      

      就是这样

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-28
        • 2011-08-26
        • 1970-01-01
        • 2016-08-18
        • 1970-01-01
        • 2012-01-27
        相关资源
        最近更新 更多