尝试/捕获问题 - 代码没有执行? AS3

时间:2014-11-21 11:04:22

标签: actionscript-3 try-catch

private function rewriteQueue():void
{
    try{
        var file:File = File.applicationStorageDirectory.resolvePath( DATA_FILE_NAME );
        file.deleteFile();

        while (users.length) {
            var aUser:Object = users.shift();
            writeUser(aUser);
        }

    }catch (e:Error) {
    }           
}

在上面,while循环似乎没有执行。当我在测试中调用该函数时,我在users数组中有一个项目,应该通过调用writeUser()将其写入刚刚删除的文件中。但是,一旦完成,我尝试从文件中读取用户,我就不能 - 它是空的。

通过将while放在try / catch块之外,它可以正常工作。

我只是想知道原因。

编辑:好的,我明白了。尝试删除的文件不存在时发生问题。这导致deleteFile()中的错误 - 导致while不执行。 Yeesh。

1 个答案:

答案 0 :(得分:0)

我知道你已经知道了,但是为了社区,请将解决方案作为一个可接受的答案,以便所有浏览网站的人都可以判断它是否得到了回答(这有助于专家和学习者)。回答你自己的问题的做法实际上在常见问题解答中得到了很大的提升。

  

尝试删除的文件时出现问题   不存在。这导致了deleteFile()中的错误 - 导致错误   而不执行。

此外,LDMS的评论非常有效。您不应该依赖Flash Professional的调试来告诉您发生了什么,使用trace()可以帮助您完成更多工作。