保存/加载使用try - catch()

本文关键字:catch try 加载 保存 | 更新日期: 2023-09-27 18:09:15

在过去的几个小时里,我一直在研究如何在我正在制作的游戏中执行简单的保存/加载功能。

保存数据被存储在一个文本文件中,在游戏期间玩家可以保存,存储玩家&敌人的位置,分数等

我正在使用StreamWriter &StreamReader对此和我有麻烦决定是否使用语句或尝试捕获来实现这一点。

为了节省空间,我只列出save方法,因为它们基本上与load方法相同。

使用:

 static void SaveAccounts(string path)
      {
            using (StreamWriter writer = new StreamWriter(path))
            {
                writer.WriteLine(accountNumber);
                writer.WriteLine(name);
                writer.WriteLine(address);
                writer.WriteLine(balance);     
            }
      }

尝试抓住

    public void Save(StreamWriter writer)
     {
        writer.WriteLine(accountNumber);
        writer.WriteLine(name);
        writer.WriteLine(address);
        writer.WriteLine(balance);
     }
    public void Save(string filename)
    {
       StreamWriter writer = null;
        try
        {
            writer= new StreamWriter(filename);
            Save(writer);
        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            if (writer!= null) writer.Close();
        }
    }

在这种情况下,我使用"accounts"来代替精灵,这样看起来更简单。

有谁能告诉我你会用什么吗?如果任何.

多谢

保存/加载使用try - catch()

您应该使用using语句。

没有理由写8行额外的代码来做完全相同的事情,但是错误的。
也没有理由编写额外的4行代码来正确地做同样的事情。

我会使用try/catch,即使它需要更多的行。为什么?因为使用using,当出现异常时,您无法控制会发生什么。对于try/catch,你可以。

作为一个例子,想象一下如果在保存过程中出现异常会发生什么。使用using,程序只是停止并关闭文件,无论它是什么,无论您的程序能够写入什么信息。也就是说,不完整。使用try/catch,您可以决定删除该文件。您还可以将所有内容写入临时文件,并在所有代码都正常工作的情况下将其复制到最终位置,如果不正常,则删除临时文件。