que tienen el código siguiente en una de nuestras páginas web Proyectos:Parece que no puede manejar 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);
}
Es básicamente toma un archivo por lotes XML y lo carga hasta como un objeto, lista para ser procesada.
Ha funcionado bien, hasta hace poco, cuando se descubrió que uno de los archivos XML contenía un carácter nulo (que no es válido en XML).
Cuando intenta procesar este archivo "Dudd", obtenemos la siguiente excepción:
alt text http://blog.ianmellor.co.uk/images/xml_err.jpg
bien hasta ahora .. pero cuando se trate de "continuar" o "pasar por encima", Espero que fluya al bloque catch. Sin embargo, no es así; simplemente obtenemos la pantalla roja de la muerte:
alt text http://blog.ianmellor.co.uk/images/xml_err2.jpg
¿Qué estoy haciendo mal?
Han intentado detectar SystemException, Exception, System.Xml.XmlPath.XPathException con un éxito similar ... – Sk93
por curiosidad, ¿qué ocurre cuando cambias catch (XmlException e) {} para catch {}? – Razzie
Razzie: Exactamente lo mismo. Lanza la pantalla roja de la muerte. – Sk93