J'ai le code suivant dans l'une de nos pages Web projets:Vous n'arrivez pas à gérer 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);
}
Il faut essentiellement un fichier batch xml et la charge comme un objet, prêt à être traité.
Cela fonctionne très bien, jusqu'à récemment, lorsque l'un des fichiers XML contenait un caractère nul (qui n'est pas valide en XML).
Quand il essaie de traiter ce fichier « Dudd », nous obtenons l'exception suivante:
alt text http://blog.ianmellor.co.uk/images/xml_err.jpg
Ok jusqu'à présent .. mais quand nous essayons ensuite de « continuer » ou « enjamber », Je m'attends à ce qu'il coule dans le bloc d'arrêt. Cependant, ce n'est pas le cas; nous avons simplement obtenir l'écran rouge de la mort:
alt text http://blog.ianmellor.co.uk/images/xml_err2.jpg
Qu'est-ce que je fais mal?
Avez essayé d'attraper SystemException, Exception, System.Xml.XmlPath.XPathException avec un succès similaire .. – Sk93
par curiosité, que se passe-t-il lorsque vous modifiez catch (XmlException e) {} pour attraper {}? – Razzie
Razzie: Exactement la même chose. Lance l'écran rouge de la mort. – Sk93