C# 奇怪的行为-发生错误但异常不是';t投掷
以下是我所拥有的:C# 奇怪的行为-发生错误但异常不是';t投掷,c#,C#,以下是我所拥有的: Debug.WriteLine("myMethod ok"); db.myTable.AddObject(new_item); db.SaveChanges(); Debug.WriteLine("myMethod save changes"); 在输出窗口中,我得到: "myMethod ok" 之后就什么都没有了。因此,AddObject和SaveChanges都不存在;t抛出异常,因为如果他们会,我在调试时会得到该异常 原因可能是什么?选中菜单“调试-异常”并标记所
Debug.WriteLine("myMethod ok");
db.myTable.AddObject(new_item);
db.SaveChanges();
Debug.WriteLine("myMethod save changes");
在输出窗口中,我得到:
"myMethod ok"
之后就什么都没有了。因此,AddObject和SaveChanges都不存在;t抛出异常,因为如果他们会,我在调试时会得到该异常
原因可能是什么?选中菜单“调试-异常”并标记所有抛出的复选框。
您可能会收到异常。选中菜单“调试-异常”并标记所有抛出的复选框。
也许你会收到例外情况。重新阅读你的问题,我意识到这也可能是一个不同的问题。也许
db.SaveChanges()代码>永远挂起,在函数顶部放置一个断点并逐步执行
调用函数的更高级别的try-catch块可能会捕获异常
您可以通过进入Debug->Execptions…
下拉菜单并选中shown
框查看公共语言运行时异常来启用“捕获抛出的异常”,从而了解发生的情况
这将导致代码在异常时中断,即使它位于try-catch块中
如果您没有看到“用户未受伤害”复选框,如下图所示
转到Debug->Options and Settings…
并确保选中了“仅启用我的代码”框
如果未选中它,它将在.NET framework引发的内部异常上中断,这些异常不代表问题,只不过是通过框架中的异常实现的流逻辑控制(大多数情况下,它是某种类型的TimeoutExecAction)
如果仍然没有捕获到异常,请在未选中“仅我的代码”的情况下重试,只需注意框架可能抛出的“红鲱鱼”异常。重新阅读您的问题,我意识到这也可能是另一个问题。也许db.SaveChanges()代码>永远挂起,在函数顶部放置一个断点并逐步执行
调用函数的更高级别的try-catch块可能会捕获异常
您可以通过进入Debug->Execptions…
下拉菜单并选中shown
框查看公共语言运行时异常来启用“捕获抛出的异常”,从而了解发生的情况
这将导致代码在异常时中断,即使它位于try-catch块中
如果您没有看到“用户未受伤害”复选框,如下图所示
转到Debug->Options and Settings…
并确保选中了“仅启用我的代码”框
如果未选中它,它将在.NET framework引发的内部异常上中断,这些异常不代表问题,只不过是通过框架中的异常实现的流逻辑控制(大多数情况下,它是某种类型的TimeoutExecAction)
如果仍然没有捕获到异常,请在未选中“仅我的代码”的情况下重试,只需注意框架可能抛出的“红鲱鱼”异常。调试时会发生什么,它是否完成执行?代码的其余部分是什么?这是控制台应用程序、windows应用程序还是其他应用程序?如何调试-Visual Studio?如果在第二行Debug.WriteLine
上放置断点,会发生什么情况?你需要比你提供的更多的信息。我敢打赌,这些方法正在抛出一个调试器无法捕获的异常。奇怪的是,如果您转到Debug->Exceptions,然后选中“Common Language Runtime exception”(公共语言运行时异常)的“抛出”框,VisualStudio应该会在大多数异常上出现异常,这可能会给您一个关于发生了什么的线索。@PaulieWaulie:这也值得禁用“只是我的代码“在调试选项中。@DanPuzey,总是忘记:)调试时会发生什么,它是否完成执行?代码的其余部分是什么?这是控制台应用程序、windows应用程序还是其他应用程序?如何调试-Visual Studio?如果在第二行Debug.WriteLine
上放置断点,会发生什么情况?你需要比你提供的更多的信息。我敢打赌,这些方法正在抛出一个调试器无法捕获的异常。奇怪的是,如果您转到Debug->Exceptions,然后选中“Common Language Runtime exception”(公共语言运行时异常)的“抛出”框,VisualStudio应该会在大多数异常上出现异常,这可能会给您一个关于发生了什么的线索。@PaulieWaulie:这也值得禁用调试选项中的“仅我的代码”。@DanPuzey,总是忘记:)