Errores comunes con XML en Windows Phone (XDocument)

Hace poco veo que una de mis aplicaciones en el Dev Center mostraba un “Crash report” o reporte de haber dejado de funcionar, obviamente me intrigué porque suelo trabajar en el control de los errores así que descargué la traza para tener una idea de lo que había sucedido y contenía lo siguiente (extracto):

System.Xml.XmlTextReaderImpl.Throw
System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace
System.Xml.XmlTextReaderImpl.ParseDocumentContent
System.Xml.XmlTextReaderImpl.Read
System.Xml.Linq.XDocument.Load
System.Xml.Linq.XDocument.ParseWebService
Application.MainPage.cliente_GetDocumentCompleted

En el evento que responde a la descarga del contenido se estaba produciendo un error durante el intento de analizar (Parse) el documento XML recibido, así que acudí a mi código a revisar lo que estaba sucediendo y resultó ser bastante simple si miramos la línea de código siguiente:

XDocument doc = XDocument.Parse(e.Result);

Parece obvio que el documento XML que estaba recibiendo estaba mal formado y por ello no era posible para el analizador cumplir con su cometido y la llamada a la función estaba fuera del bloque Try. La solución como puede imaginar es tan simple como agregar esta línea (que sabemos que puede fallar) dentro del bloque Try y manejar adecuadamente el error brindándole al usuario un mensaje amigable dentro de las posibilidades.

Deja un comentario