我想從一個catch塊調用一個方法,但該方法內部的xmlnode似乎不起作用。我得到一個null。如果我從try塊中調用同樣的方法,它就可以工作。從catch方法調用方法不起作用
var doc = new XmlDocument();
try
{
doc.Load(f.FullPath);
// do some work
}
catch (Exception e)
{
if (e is XMLException)
{
checkXML(ref doc);
}
public void checkXML(ref XmlDocument doc)
{
XmlNode xn = doc.SelectSingleNode("/BroadcastMonitor/Current");
xn["name1"].InnerText = SecurityElement.Escape(xn["name1"].InnerText);
xn["name2"].InnerText = SecurityElement.Escape(xn["name2"].InnerText); ;
}
現在,當catch塊調用方法'checkXML'時,我得到xn爲空。但是如果我只是爲了檢查而從'try'塊執行相同的操作,'xn'就有一個值。 'doc'也有一個值,無論何時調用try或from catch塊。
這是怎麼發生的?請幫助我理解。
編輯
<BroadcastMonitor>
<updated>2014-10-17T07:56:30</updated>
<Name>TESTING</Name>
<Current>
<artistName>اصاله& نصرى</artistName>
<albumName>شخصيه عنيده</albumName>
<CategoryName>ARABIC & SONGS</CategoryName>
</Current>
</BroadcastMonitor>
謝謝。
您是否嘗試過調試程序並通過代碼逐步查看'doc'變量的內容在異常代碼塊中的內容? – pasty 2014-10-17 05:26:35
是的,我已經這樣做了,正如我的問題所述。 doc變量的值爲 – user726720 2014-10-17 05:28:42
你的代碼在'doc.Load(...)'或'做了些什麼工作'失敗(=引發異常)? – pasty 2014-10-17 05:30:02