Ho il seguente codice in uno dei nostri progetti di pagine web:Non riesco a gestire XMLException?
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);
}
Ci vuole fondamentalmente un file batch XML e lo carica in su come un oggetto, pronti per essere elaborati.
Sta funzionando bene, fino a poco tempo fa, quando uno dei file XML è stato trovato per contenere un carattere nullo (che non è valido in XML).
Quando si tenta di elaborare il file "dudd", otteniamo la seguente eccezione:
alt text http://blog.ianmellor.co.uk/images/xml_err.jpg
Ok finora .. ma quando poi cerchiamo di "continua" o "scavalcare", Mi aspetto che fluisca nel blocco delle catture. Tuttavia, non lo fa; abbiamo semplicemente avere uno schermo rosso della morte:
alt text http://blog.ianmellor.co.uk/images/xml_err2.jpg
Che cosa sto facendo di sbagliato?
Hanno tentato di rilevare SystemException, Exception, System.Xml.XmlPath.XPathException con un successo simile. – Sk93
per curiosità, cosa succede quando si modifica il catch (XmlException e) {} per rilevare {}? – Razzie
Razzie: esattamente lo stesso. Lancia lo schermo rosso della morte. – Sk93