我有这个代码:
#ifdef _DEBUG
#define _SECURE_SCL 1
#define _SECURE_SCL_THROWS 1
#else
#define _SECURE_SCL 0
#define _SECURE_SCL_THROWS 0
#endif
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> v1;
v1.push_back(33);
vector <int>::iterator it1 = v1.begin();
try
{
it1++;
it1++;
}
catch (...)
{
cout << "vector is empty!!" << endl;
}
return 0;
}
一个非常简单的:我试图越过边界,我希望捕获异常。然而,程序只是简单地因“调试断言失败!”而崩溃!在第二个增量上,为什么会这样?
该示例取自http://msdn.microsoft.com/en-us/library/aa985965(v=vs.100).aspx,我刚刚添加了宏来设置选中的迭代器。我处于调试模式,/EHsc 已打开,/MDd 也已打开