加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 处理加载和显示数据之间的异常

发布时间:2020-12-15 22:14:38 所属栏目:百科 来源:网络整理
导读:我有这种情况不知道如何最好地处理这个.输入将不胜感激.想象一下我有这样的方法: void loaddata(){ try { // EXTRA: I also want to skip below SaveSomething if there was exeption // last time I called DecryptAndloadXMLdata. This may happen // if
我有这种情况不知道如何最好地处理这个.输入将不胜感激.想象一下我有这样的方法:

void loaddata()
{
    try
    {
        // EXTRA: I also want to skip below SaveSomething if there was exeption
        // last time I called DecryptAndloadXMLdata. This may happen
        // if user calls loaddata twice. This is exaclty similar situation
        // as app quitting just it happens is user calls loaddata twice
        // and during first call there was exception say with DecryptAndloadXMLdata
        Savesomething(listOfObjects,xmlPath);//save old data first
        xmlPath = newValue;

        // some operations

        xmlDoc = DecryptAndloadXMLdata(xmlPath);

        // some other operations- populate List with data from above XML file
        listOfObjects.Add(objectFromXML);
        // Here also possibly modify contents of listOfObjects elements
    }
    catch(Exception ex)
    {
        xlmPath="";
    }
}

现在问题是应用程序退出时我有这样的功能
自动保存上面填充的List对象
文件的方法.喜欢:

void whenAppisQuitting()
{
    Savesomething(listOfObjects,xmlPath);
}

但问题是.想象一下xmlDoc = loadXMLdata();抛出上面的方法.会发生什么是我提到的列表不会被填充,当应用程序退出时,空元素(例如空listOfObjects)将被写入xmlPath – 从而损坏我的原始文件,因为由于loadXMLData方法中的加密而存在无关的异常.

我希望我的问题清楚.处理这种情况的方法是什么?例如我所做的你可以看到我在catch中将xmlPath设置为空 – 因此在任何异常情况下我认为数据未成功加载 – 因此现在在应用程序退出时我可以保持冷静,因为没有任何内容会被写入文件,因为它的xmlPath = “”.这是解决这个问题的合理方法吗?

有点困惑,因为这种问题现在将错误处理提升到不同的水平 – 我需要考虑所有可能的故障类型?

解决方法

What is the way to deal with such situations?

我会设置一个标志,指示解析时出错.将路径设置为string.Empty会导致混淆(IMO).也许一个空字符串可能是传递给您的方法的可能值.

catch(Exception ex)
{
    // Log
    IsParsingSuccessful = false;
}

当你想写时,看看那面旗帜:

void AppIsQuitting()
{
    if (IsParsingSuccessful)
    {
        SaveSomething(listOfObjects,xmlPath);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读