Ich habe den folgenden Code in einem unserer Projekte Webseiten:Kann ich nicht mit XMLException umgehen?
XmlDocument xDoc = new XmlDocument();
xDoc.Load(File.FullName);
//work through each print batch in this queue file
try
{
XmlNodeList nodeList = xDoc.SelectNodes("Reports/PrintBatch");
foreach (XmlNode printBatch in nodeList)//xDoc.SelectNodes("Reports/PrintBatch"))
{
PrintBatch batch = new PrintBatch();
batch.LoadBatch(printBatch, File.Extension);
this.AddBatch(batch);
}
}
catch (XmlException e)
{
//this report had an error loading!
Console.WriteLine(e.Message);
}
Es im Grunde eine XML-Batch-Datei und lädt sie in Anspruch nimmt als ein Objekt, fertig verarbeitet werden.
Es funktionierte einwandfrei, bis vor kurzem, als eine der XML-Dateien ein Nullzeichen enthielt (was in XML ungültig ist).
Wenn es versucht, diese „Dudd“ Datei zu verarbeiten, erhalten wir die folgende Ausnahme:
alt text http://blog.ianmellor.co.uk/images/xml_err.jpg
Ok, so weit .. aber wenn wir dann versuchen, „fortsetzen“ oder „Schritt über“, Ich erwarte, dass es in den Fangblock fließt. Allerdings tut es nicht; wir einfach den roten Bildschirm des Todes erhalten:
alt text http://blog.ianmellor.co.uk/images/xml_err2.jpg
Was mache ich falsch?
Haben versucht, SystemException, Exception, System.Xml.XmlPath.XPathException mit ähnlichen Erfolg zu fangen. – Sk93
aus Neugier, was passiert, wenn Sie catch (XmlException e) ändern {}, um {} zu fangen? – Razzie
Razzie: Genau das Gleiche. Wirft den roten Bildschirm des Todes. – Sk93