Error handling 检查是否有“错误”;缺少根元素";,当使用XDocument.Parse时?

Error handling 检查是否有“错误”;缺少根元素";,当使用XDocument.Parse时?,error-handling,webclient,linq-to-xml,Error Handling,Webclient,Linq To Xml,我想听听,在使用XDocument.Parse()时,如何检查“根元素丢失”;目前,我正在使用try-catch来捕获错误,但是我想听听,如果你们有更聪明的方法来做这件事的话——就我个人而言,我希望避免错误,而不是缓存错误 我应该澄清一下,我正在解析的字符串是从WebClient.DownloadString(…);,返回的;,因此,我不是自己创建XML的 致以最诚挚的问候。try/catch异常处理是.NET framework中非常正常和常见的编程风格。XML有严格的语法规则,XML解析器在

我想听听,在使用XDocument.Parse()时,如何检查“根元素丢失”;目前,我正在使用try-catch来捕获错误,但是我想听听,如果你们有更聪明的方法来做这件事的话——就我个人而言,我希望避免错误,而不是缓存错误

我应该澄清一下,我正在解析的字符串是从WebClient.DownloadString(…);,返回的;,因此,我不是自己创建XML的


致以最诚挚的问候。

try/catch异常处理是.NET framework中非常正常和常见的编程风格。XML有严格的语法规则,XML解析器在解析标记时会检查这些规则,因此您需要准备好处理任何解析错误,try/catch是正确的工具


您尚未说明是否控制传递给XDocument.Parse的字符串参数的创建。如果你不能控制它,那么你就无法避免错误。如果您进行控制,那么请确保不使用字符串连接或StringBuilder来使用XML构造字符串,而是确保使用XmlWriter之类的XML API,这样您将获得格式良好的XML标记,或者在构造标记时(而不是在解析标记时)会出现任何错误。但是XmlWriter抛出的任何错误也最好用try/catch来处理。

有没有理由让您能够以不同的方式处理一个语法错误呢?没有,我只是想通过听SO上的其他开发人员说些什么来升级我的编码方式。嗨,Martin Honnen,谢谢您的回复。关于什么是正常的和平常的,我非常清楚这一点,我只是想知道,是否有其他的方法可以做到这一点。对于您的问题,不,我不控制提供给XDocument.Parse()的字符串的创建。