【发布时间】:2011-05-27 14:34:04
【问题描述】:
private void button1_Click(object sender, EventArgs e)
{
///IDE will notify me of this exception
throw new Exception();
}
private void Form1_Load(object sender, EventArgs e)
{
//IDE will not notify me of this exception
throw new Exception();
//code will not execute
MessageBox.Show("test");
}
为什么?
----------已编辑----------
正确答案是ChrisA 提到的。
来自微软的一些报价:
这是 x64 版本的已知错误 Windows 和异常的方式 处理。解决此问题的一种方法 调试时的问题是去 调试 -> 异常并选择 为异常类型“抛出” 你有兴趣。这将停止 异常时的调试器 第一次命中(在 Windows 吃掉它之前) 上)。
此错误已作为“外部”关闭 因为这种行为是由 x64版Windows手柄 例外。当用户模式异常时 跨越内核转换,x64 Windows 版本不允许 传播异常。所以 附加的调试器不知道 发生异常的事实 导致调试器无法 中断未处理的异常。
不幸的是,什么都没有 Visual Studo 团队可以做到 解决这个问题,这是 操作系统设计。所有反馈 关于这个问题应该 致 Windows 团队;然而 Windows 团队认为这是 “正确”的操作系统设计, 并认为 x86 行为是 “不正确”。
此修补程序尚未完成 测试。因此,意在 仅适用于系统或计算机 遇到的确切问题是 一个或多个 Microsoft 中描述的 知识库文章 在“知识库文章编号”字段中列出 在这封电子邮件末尾的表格中 信息。如果您不确定是否 任何特殊的兼容性或 安装问题相关 使用此修补程序,我们鼓励您 等待下一个服务包 发布。该服务包将包括 此修复程序的完整测试版本。我们 明白这可能很难 确定是否有任何兼容性或 安装问题相关 带有修补程序。如果你想 确认此修补程序 解决您的具体问题,或者如果 你想确认是否有 特殊兼容性或安装 问题与此相关 修补程序,支持专业人员 客户支持服务可以帮助您 用那个。
【问题讨论】:
标签: visual-studio-2010 exception