Partager via


Procédure : intercepter des erreurs d'analyse

Cette rubrique montre comment détecter du code XML incorrect ou non valide.

LINQ to XML est implémentée avec XmlReader. Si du code XML incorrect ou non valide est passé à LINQ to XML, la classe sous-jacente XmlReader ève une exception. Les différentes méthodes qui analysent du code XML, telles que XElement.Parse, n'interceptent pas l'exception ; l'exception peut alors être interceptée par votre application.

Notez que vous ne pouvez pas obtenir d'erreurs d'analyse si vous utilisez des littéraux XML. Le compilateur Visual Basic intercepte les erreurs de code XML incorrect ou non valide.

Exemple

Le code suivant tente d'analyser du code XML non valide :

try {
    XElement contacts = XElement.Parse(
        @"<Contacts>
            <Contact>
                <Name>Jim Wilson</Name>
            </Contact>
          </Contcts>");

    Console.WriteLine(contacts);
}
catch (System.Xml.XmlException e)
{
    Console.WriteLine(e.Message);
}
Try
    Dim contacts As XElement = XElement.Parse("<Contacts>" & vbCrLf & _
        "    <Contact>" & vbCrLf & _
        "        <Name>Jim Wilson</Name>" & vbCrLf & _
        "    </Contact>" & vbCrLf & _
        "</Contcts>")

    Console.WriteLine(contacts)
Catch e As System.Xml.XmlException
    Console.WriteLine(e.Message)
End Try

Lorsque vous exécutez ce code, l'exception suivante est levée :

The 'Contacts' start tag on line 1 does not match the end tag of 'Contcts'. Line 5, position 13.

Pour plus d'informations sur les exceptions que les méthodes XElement.Parse, XDocument.Parse, XElement.Load et XDocument.Load peuvent lever, consultez la documentation XmlReader.

Voir aussi

Concepts

Analyse de code XML