我有这种情况不知道如何最好地处理这个.输入将不胜感激.想象一下我有这样的方法:
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 = “”.这是解决这个问题的合理方法吗?
有点困惑,因为这种问题现在将错误处理提升到不同的水平 – 我需要考虑所有可能的故障类型?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。