我必须修复一些看起来像这样的代码:
XmlDocument XmlFoo = null;
try{
SomeUntrappedWCFCalls();
SomeUntrappedStringParsing();
SomeUntrappedXMLParsing();
..
XmlFoo = new XmlDocument();
XmlFoo.LoadXml(SomeXml);
..
SomeUntrappedWCFCalls();
SomeUntrappedStringParsing();
SomeUntrappedXMLParsing();
}
(Exception ex){
CodeThatDealsWithPartOfTheExceptionsRaisedAbove();
..
//Need to check if the LoadXml() went wrong
..
CodeThatDealsWithPartOfTheExceptionsRaisedAbove();
}
我如何正确检查异常处理部分(*),如果XmlFoo
是新实例XmlDocument
但由于LoadXml()
加载/解析错误而出错?
我有两个约束:
- 我无法将
LoadXML()
内部包装起来,XmlException
因为所有错误处理都在异常代码中处理。 - 我无法
XmlException
在一般异常之前创建一个,因为在 XmlFoo 解析之前和之后解析了其他 Xml 文件。
仅使用以下内容计算节点的数量是一种安全且不优雅的解决方法吗:
if (XmlFoo.ChildNodes.Count == 0){..
还是我需要一些其他变量来LoadXML()
以某种方式检查解析状态?