visual-studio - Visual Studio 不中断异常助手,只是停止进程

标签 visual-studio visual-studio-2008

通常,如果遇到未处理的异常,Visual Studio 会中断并显示异常助手窗口。

但在某些情况下,Visual Studio 只会停止正在运行的程序,而不会中断或显示异常帮助程序。

异常选项 (Ctrl+Alt+E) 配置正确:“user-unhandled”在所有项目上都被选中,“thrown”未被选中。在调试选项中,我启用了异常助手。

因为它只发生在某些场合,所以我试图弄清楚 Visual Studio 何时进入“故障异常助手状态”。

编辑:

看起来故障异常助手 ghost 只出现在 winforms 应用程序中,并且只有在调用 Web 服务或打开数据库连接等外部操作之后才会出现。

结束编辑

It turns out the exception assistant works fine until an ADODB connection is opened:

var conn = new ADODB.Connection();
conn.Open("Provider=SQLOLEDB;Server=localhost;Database=db;UID=user;PWD=pw;", "", "", -1);
throw new InvalidOperationException();

After excecuting the conn.Open statement, the exception assistant will never kick in.



这听起来对任何人来说都很熟悉,更重要的是:有人有解决问题的方法吗?可以想象,如果应用程序总是在出现异常时退出,那么调试应用程序将变得非常困难。

最佳答案

我不完全确定是什么导致了这种行为 - 但我刚刚发生了完全相同的事情。

此答案的简短版本:

重新安装 Visual Studio 2008 sp1。如果您还没有安装它,那么我想您可以修复您的 VS 安装,或者现在简单地应用 sp1,它应该可以修复它。

长版:

我的代码中有一个异常,并且 Visual Studio 在异常发生时没有显示调试助手 - 相反,我会看到 Windows 错误报告对话框,并提示我是否要调试该过程!如果我在抛出所有异常时告诉 VS 中断,它会起作用(但这不是调试应用程序的方法)。

奇怪的是,在同一台机器上,我已经能够调试在 IIS7.5 中运行的 WCF 服务 - 所以我无法理解它。

经过无数次咒骂和反复尝试,我禁用了 Windows 错误报告。尽管如此,对话框还是出现了,VS 不会因为异常而中断。

所以我禁用了 Windows 错误报告服务(它是按需启动的) - 这次应用程序将简单地退出而不显示对话框 - 但 VS 仍然不会因异常而中断。

最后,我认为 VS 可能存在配置问题 - 所以我重新应用了 Visual Studio 2008 sp1,现在它又可以正常工作了。

关于visual-studio - Visual Studio 不中断异常助手,只是停止进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406283/

相关文章:

html - 更改 Visual Studio 2008 HTML 缩进样式

visual-studio-2008 - 带下划线的未解析引用

c - 从DLL内部调用EXE函数

visual-studio-2008 - 如何将 QtCreator 项目转换为 Visual Studio 项目

c - 在纯 C 中加密字符串以便将它们隐藏在可执行文件中

C++ 查找入口点

visual-studio - 调试器和 Intellitrace 在文本查看器中为长 SqlCommand.CommandText 显示截断的文本

visual-studio - VS2010总是重建解决方案?

asp.net-mvc - 如何在构建时验证 aspx 文件的 <% 和 %> 括号之间包含的所有代码?

c# - Visual Studio 中的本地化文件路径