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(); 
}