0
如果我有這樣的當你停止VS調試器時會發生什麼?
ContentRepository.Update(existing);
即進入數據存儲庫中更新一些對象一條線,我在這個更新功能try..catch塊這樣的:
string file = XmlProvider.DataStorePhysicalPath + o.GetType().Name + Path.DirectorySeparatorChar + o.Slug + ".xml";
DataContractSerializer dcs = new DataContractSerializer(typeof (BaseContentObject));
using (
XmlDictionaryWriter myWriter =
XmlDictionaryWriter.CreateTextWriter(new FileStream(file, FileMode.Truncate, FileAccess.Write),
Encoding.UTF8))
{
try
{
dcs.WriteObject(myWriter, o);
myWriter.Close();
}
catch (Exception)
{
// if anything goes wrong, delete the created file
if (File.Exists(file))
File.Delete(file);
if(myWriter.WriteState!=WriteState.Closed)
myWriter.Close();
}
}
那麼爲什麼如果我在上面的行的調試會話中單擊「停止」,Visual Studio會繼續調用Update()嗎?
例如,我通過按F10逐行進入該行,現在我在該行上顯示爲黃色,然後按「停止」。
顯然發生了什麼事,VS執行Update()方法並以某種方式發現出錯的地方並進入「catch」並刪除文件,這是錯誤的,因爲我希望我的catch在有一個真正的例外不是當我調試一個程序,並強制停止它。
這是從ASP.NET MVC應用程序,它應該結束過程?目前,我的瀏覽器窗口保持打開狀態。我沒有這樣配置,這是默認的。 – mare 2010-04-20 13:13:39
@mare:在這裏,當我將Firefox作爲默認瀏覽器時,它不會結束這個過程。它用於IE。我認爲這可能是一個設置的地方;但我通常更喜歡它*不會結束這個過程,所以我沒有看過它。 – 2010-04-20 13:45:58
我可以確認這是瀏覽器依賴於我的身邊。 – mare 2010-04-26 17:49:29