有谁能告诉我如何在C ++中模拟和生成bad_alloc
异常?在我的某些地方的代码中,我使用的是new
运算符,它将抛出bad_alloc
异常。我想模拟这种情况,需要测试代码。
答案 0 :(得分:1)
Balamurugan,
今天下午我有同样的疑问,并没有看到任何相关内容。 所以我去了CPlusPlus并将try catch放在一个无限循环中,并且工作了。在VS C ++ 2010 Express下。
在我的代码下面:
// bad_alloc standard exception
#include <iostream>
#include <exception>
using namespace std;
int main ()
{
unsigned int count=0;
while (1)
{
count++;
try
{
int* myarray= new int[1000000];
}
catch (exception& e)
{
cout << "Standard exception: " << e.what() << endl;
cout << "\nAborting after "<< count << " loops";
return -1;
}
}
cout<<"\nNormal finishing...";
return 0;
}
在我的情况下,它是在523循环之后被捕获的。如果我知道设置将堆限制为Fisical Memory,我会更好,如果我发现我会让你知道。