捕捉WPF應(yīng)用程序中XAML代碼解析異常_.Net教程
推薦:.NET:InTheHand提供的類操作SMS由于需要催手機(jī)里的短消息(SMS)進(jìn)行操作,現(xiàn)成的API都不能方便的實(shí)現(xiàn),看到最好用的要數(shù)InTheHand這家第三方控件了,真的很方便,但是這個(gè)版本是商業(yè)版($49),發(fā)布的試用版不支持這個(gè)類的,
由于WPF應(yīng)用程序中XAML代碼在很多時(shí)候是運(yùn)行時(shí)加載處理的。比如DynamicResource,但是在編譯或者運(yùn)行的過程中,編寫的XAML代碼很可能有錯(cuò)誤,此時(shí)XAML代碼解析器通常會(huì)拋出稱為XamlParseException的異常。但是拋出的XamlParseException異常提供的信息非常簡(jiǎn)單,或者是很不準(zhǔn)確。此時(shí)我們關(guān)于通過對(duì)變通的方法來獲取更多的異常信息:
我們知道,WPF應(yīng)用程序中的XAML代碼是在InitializeComponent方法中解析的。而這個(gè)方法通常位于窗口對(duì)象的構(gòu)造函數(shù)之中。因此,我們利用.NET的異常機(jī)制來調(diào)用方法InitializeComponent:
| 以下為引用的內(nèi)容: 1 public partial class Window1 : System.Windows.Window 2 { 3 public Window1() 4 { 5 try 6 { 7 InitializeComponent(); 8 } 9 catch ( Exception ex ) 10 { 11 // 異常處理(InnerExceptions) 12 } 13 } 14 } |
如此調(diào)用InitializeComponent能幫助我們?cè)谡{(diào)試時(shí)獲得更準(zhǔn)確的異常信息。

除了上面的異常捕捉機(jī)制,另一種方案是利用Visual Studio的異常對(duì)話框。在菜單調(diào)試(Debug)下的異常(Exception...)對(duì)話框中,通過右下的添加按鈕把System.Markup.XamlParseException加入到異常捕捉列表中。并選中Thrown復(fù)選框。如此也能獲取更多的關(guān)于XamlParseException的信息。
分享:專家詳解:復(fù)雜表達(dá)式的執(zhí)行步驟近日在CSDN上閑逛的時(shí)候,注意到一個(gè)帖子: ((*strDest =*strSrc )!='