LINQ to XML Part # 5: Catching Parsing Exceptions

Objective

This is a very high level article which will explain; how to handle exception in parsing XML using LINQ to XML.

Problem

Let us say, we are parsing a below string using XElement.Parse

String strParse = “<Address><Name>Dhananjay Kumar </Name> “;

This string is not valid formed. But XElement.Parse won’t be able to catch the exception. So if we will run the below code

String strParse = “<Address><Name>Dhananjay Kumar </Name> “;

XElement xmlTree = XElement.Parse(strParse);

Console.WriteLine(xmlTree);
 

We will get the below run time error.

Five Facts

  1. LINQ to XML is implemented through XMLReader.
  2. Parse methods on various LINQ to XML class are unable to handle the Exception.
  3. At time of parsing if input is invalid XML or not formed exception occurs.
  4. At Exception the underlying XMLReader will throw the Exception.
  5. High level Exception would be System.Xml.XmlException

How to handle the Exception?

Programmer has to explicitly handle the Exception while parsing. Parsing code need to be put in try catch and Exception must be handled explicitly.


try

{


String strParse = “<Address><Name>Dhananjay Kumar </Name> “;


XElement xmlTree = XElement.Parse(strParse);


Console.WriteLine(xmlTree);

}


catch (System.Xml.XmlException e)

{


Console.WriteLine(e.Message);

}

Output


 Conclusion
In this article, I showed how to handle exception in parsing XML using LINQ to XML. Thanks for reading.

Dhananjay Kumar is Developer, Blogger , Speaker, Learner , Mindcracker & Microsoft MVP.

Posted in LINQ
2 comments on “LINQ to XML Part # 5: Catching Parsing Exceptions
  1. We would like to introduce you to best services and to help YOU with fast forward tips to start using this incredible service to your advantage.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Categories
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my current or previous employer's view in anyway. © Copyright 2013
Follow

Get every new post delivered to your Inbox.

Join 2,120 other followers

%d bloggers like this: