前方専用リーダーであるXmlReaderクラスを使用しています。私が呼び出しているメソッドは、副作用としてカーソルを移動します。ただし、メソッドが例外をスローし、カーソルが予期しない場所に残ることがあります。どうすればそれを処理できますか?
xml.ReadStartElement("root");
if (xml.IsStartElement("Results"))
{
try
{
results = Results.FromXml(xml);
// if method successful, it reads past the closing tag of the 'Results' element
}
catch
{
results = null;
// I want to manually move the cursor past the closing tag of the 'Results' element.
}
}
文書例
<root>
<results>
<arbitaryxml/>
</results>*
<signatures>
Results.FromXml メソッドが成功すると、カーソルは * に残ります。ただし、失敗した場合は、結果要素内のどこかに残っている可能性があります。カーソルが * に進んでいることを確認するキャッチ ブロックが必要です。(NB。次の要素は常に「署名」と呼ばれるわけではありません)。
これを説明するのはかなり難しいと思いました。説明が必要かどうか尋ねてください。もっと例を挙げることができます。