奇怪的行为 - 发生错误但不抛出异常

时间:2013-05-30 14:58:29

标签: c#

这就是我所拥有的:

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

在输出窗口中,我得到:

"myMethod ok"
之后什么都没有。因此,AddObject和SaveChanges不会抛出异常,因为如果他们愿意,我会在调试时得到异常。

这可能是什么原因?

2 个答案:

答案 0 :(得分:5)

重新阅读你的问题,我意识到这也可能是一个不同的问题。也许db.SaveChanges();永远挂起,在功能的顶部放置一个断点并逐步完成。


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

您可以通过转到Debug->Execptions...下拉菜单并检查公共语言运行时例外的Thrown框来启用“捕获引发异常”,以了解发生的情况。

enter image description here

这将导致代码在异常中中断,即使它在try-catch块中。

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

enter image description here

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

enter image description here

如果没有检查它将破坏.NET框架抛出的不代表问题的内部异常,只是控制通过框架中的异常实现的流逻辑(大多数时候它是一些TimeOutExecption of some样)。

如果仍未捕获异常,请在未选中“Just My Code”的情况下再次尝试,只需注意框架可能抛出的“red-herring”异常。

答案 1 :(得分:0)

检查菜单DEBUG - 例外并标记所有Thrown复选框。 也许你会收到例外。