Question: What are the possible exceptions that can be thrown when `XDocument.Load(XmlReader)` is called? It is hard to follow best practices (i.e. avoiding generic try catch blocks) when the documentation fails to provide crucial information.

Thanks in advance for your assistance.

Answer: 
`XmlReader.Create(Stream)` allows two types of exceptions: [*[src]*](http://msdn.microsoft.com/en-us/library/756wd7zs.aspx "[src]")

```
XmlReader reader; // Do whatever you want

try
{
  XDocument.Load(reader);
}
catch (ArgumentNullException)
{
  // The input value is null.
}
catch (SecurityException)
{
  // The XmlReader does not have sufficient permissions 
  // to access the location of the XML data.
}
catch (FileNotFoundException)
{
  // The underlying file of the path cannot be found
}

```
Looks like the online documentation doesn't state which exceptions it throws... too bad.
You will save yourself some grief with FileNotFoundException's by using a FileInfo instance, and calling its **Exists** method to make sure the file really is there. That way you won't have to catch that type of exception.
[Edit]
Upon re-reading your post, I forgot to notice that you are passing in an XML Reader. My response was based upon passing in a string that represents a file (overloaded method). 
In light of that, I would (like the other person who responded to your question had a good answer too).

In light of the missing exception list, I would suggest to make a test file with malformed XML and try loading it to see what type of exceptions really do get thrown. Then handle those cases.