【发布时间】:2014-02-21 01:59:27
【问题描述】:
有一个 C++ 应用程序,VS2012,它看起来像:
int main(int argc, char* argv[]){
try{
//Stuff
}
catch(exception& e){
std::cout << e.what() << std::endl;
}
int b;
cin >> b;
return 0;
}
- 如果我在调试模式下运行,工作正常。
- 如果我在发布模式下运行,工作正常。
- 如果我在 F5+ ctrl 中运行,应用程序会崩溃并且我的 catch 语句不会被执行。
如果我转到 Debug->Exceptions,C++ 异常的复选框没有被勾选,而 C++ 异常的用户处理框被勾选了?所以我期待我的 catch 语句被执行。
我不明白为什么我的 catch 语句没有被执行.....
(同样不明白为什么代码在release模式下运行,但不在f5+ctrl模式下运行)
【问题讨论】:
-
嗯...
//Stuff到底发生了什么?也许您依赖于迭代器边界检查生成的异常或发布版本中不存在的异常。 -
@paddy 与哈希(unordered_map)有关。不幸的是不能说太多:s
标签: c++ visual-studio exception visual-studio-2012