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