2012-08-12 86 views
2

我有一个空字符串,当我在XmlReader上使用它时,它给出了当然解析“根元素是missin”异常,我试图抓住它,但try,catch不回应,有没有办法来捕捉这个异常或检测到我的字符串不可解析。无法捕获System.Xaml.XamlParseException

System.IO.StringReader stringReader = new System.IO.StringReader(""); 

System.Xml.XmlReader xmlReader = System.Xml.XmlTextReader.Create(stringReader, new System.Xml.XmlReaderSettings()); 

try 
{ 
    object ob = System.Windows.Markup.XamlReader.Load(xmlReader);// 
    mycv = (Canvas)ob; 
} 
    catch (Exception ex) //even if I use System.Xaml.XamlParseException 
{ 
    mycv = new Canvas(); 
} 
+0

你是什么意思“的'试试,catch'没有反应”是什么意思?我刚刚运行了您的确切代码,它发现异常就好。 (虽然当然你最好赶上你期望的特定异常。) – 2012-08-12 02:48:46

+0

我想我得清理我的项目,我会试一试 – S3ddi9 2012-08-12 03:33:38

+0

仍然无法工作,有没有办法检测是否有根元素存在,@ RV1987 – S3ddi9 2012-08-21 00:37:54

回答

3
object ob = System.Windows.Markup.XamlReader.Load(xmlReader); 

在这里,您使用的是Windows标记XamlReader,所以System.Xaml.XamlParseException将不会在这里抛出相反,你应该抓住System.Windows.Markup.XamlParseException

这应该为你工作 -

try 
{ 
    object ob = System.Windows.Markup.XamlReader.Load(xmlReader);// 
    mycv = (Canvas)ob; 
} 
    catch (System.Windows.Markup.XamlParseException ex) 
{ 
    mycv = new Canvas(); 
}