0

这是我所拥有的:

Debug.WriteLine("myMethod ok");
db.myTable.AddObject(new_item);
db.SaveChanges();
Debug.WriteLine("myMethod save changes");

在输出窗口中,我得到:

"myMethod ok"

之后就什么都没有了。因此,AddObject 和 SaveChanges 不会引发异常,因为如果它们会,我会在调试时得到该异常。

这可能是什么原因?

4

2 回答 2

5

重新阅读您的问题,我意识到这也可能是一个不同的问题。也许db.SaveChanges();永远挂起,在函数顶部放置一个断点并单步执行。


异常可能被调用您的函数的更高级别的 try-catch 块捕获。

您可以通过转到Debug->Execptions...下拉菜单并选中Thrown公共语言运行时异常框来启用“抛出时捕获异常”来跟踪正在发生的事情。

在此处输入图像描述

这将导致您的代码因异常而中断,即使它位于 try-catch 块内。

如果您没有看到“User-Unhanded”框,请检查如下图

在此处输入图像描述

转到Debug -> Options and Settings...并确保选中“仅启用我的代码”框。

在此处输入图像描述

如果不检查,它将中断 .NET 框架抛出的不代表问题的内部异常,只是控制通过框架中的异常实现的流逻辑(大多数情况下它是某种 TimeOutExecption)。

如果仍然没有捕获到异常,请在未选中“仅我的代码”的情况下再次尝试,请注意框架可能抛出的可能的“红鲱鱼”异常。

于 2013-05-30T15:05:07.240 回答
0

检查菜单 DEBUG - Exceptions 并标记所有 Throw 复选框。也许你会收到异常。

于 2013-05-30T15:02:06.650 回答