【发布时间】:2010-02-22 20:23:44
【问题描述】:
我有一个 Qt 应用程序,我在 release 配置中编译、运行,然后在程序中执行 X 操作。一切正常。
然后我在debug配置中编译它,运行不调试(所以CTRL+F5),在程序中执行操作X。一切仍然运行得很好。
但是,当我尝试运行调试配置带调试功能(所以只是 F5)然后执行操作 X 时,Visual Studio 会中断并显示一个异常已引发的消息...... 完全不相关程序的一部分(正在执行的代码远离VS中断的站点,在QHash模板中)......然后VS挂起,我必须用任务管理器杀死它。我可以无限重复这个广告,它总是以同样的方式吓坏。
Boost::exception 用于异常。 VS 是 2008,SP1。 Qt 是 4.6.2,使用来自 Qt 站点的预编译 VS 二进制文件。
有人知道发生了什么吗?
【问题讨论】:
-
您不会碰巧启用了首次机会异常处理,对吗? (调试 -> 异常;查看是否选中了任何复选框)。
-
嗯...是的。 “C++ 异常”被选中。删除检查可以解决问题。但我不记得曾经将这些设置为选中。无论如何,您的解决方案有效,现在我觉得自己像个白痴。如果您将评论作为答案,我会将其标记为已接受。
-
但仍然......在执行代码中没有抛出异常(也没有可能抛出的代码)。
-
"没有任何代码会抛出"你确定吗?
-
会不会在不同的线程中抛出异常?
标签: c++ visual-studio qt exception boost